'attachment', 'meta_key' => '_wp_attached_file', 'meta_value' => ltrim($mat[1], '/'))); if (!empty($attachment)) { return new WP_Error('file_exists', __('Sorry, That file already exists in the WordPress media library.', 'bizway')); } //Ok, Its in the uploads folder, But NOT in WordPress's media library. if ('file' == $import_date) { $time = @filemtime($file); if (preg_match("|(\d+)/(\d+)|", $mat[1], $datemat)) { //So lets set the date of the import to the date folder its in, IF its in a date folder. $hour = $min = $sec = 0; $day = 1; $year = $datemat[1]; $month = $datemat[2]; // If the files datetime is set, and it's in the same region of upload directory, set the minute details to that too, else, override it. if ($time && date('Y-m', $time) == "$year-$month") { list($hour, $min, $sec, $day) = explode(';', date('H;i;s;j', $time)); } $time = mktime($hour, $min, $sec, $month, $day, $year); } $time = gmdate('Y-m-d H:i:s', $time); // A new time has been found! Get the new uploads folder: // A writable uploads dir will pass this test. Again, there's no point overriding this one. if (!( ( $uploads = wp_upload_dir($time) ) && false === $uploads['error'] )) return new WP_Error('upload_error', $uploads['error']); $url = $uploads['baseurl'] . $mat[1]; } } else { $filename = wp_unique_filename($uploads['path'], basename($file)); // copy the file to the uploads dir $new_file = $uploads['path'] . '/' . $filename; if (false === @copy($file, $new_file)) return new WP_Error('upload_error', sprintf(__('The selected file could not be copied to %s.', 'bizway'), $uploads['path'])); // Set correct file permissions $stat = stat(dirname($new_file)); $perms = $stat['mode'] & 0000666; @ chmod($new_file, $perms); // Compute the URL $url = $uploads['url'] . '/' . $filename; if ('file' == $import_date) $time = gmdate('Y-m-d H:i:s', @filemtime($file)); } //Apply upload filters $return = apply_filters('wp_handle_upload', array('file' => $new_file, 'url' => $url, 'type' => $type)); $new_file = $return['file']; $url = $return['url']; $type = $return['type']; $title = preg_replace('!\.[^.]+$!', '', basename($file)); $content = ''; if ($time) { $post_date_gmt = $time; $post_date = $time; } else { $post_date = current_time('mysql'); $post_date_gmt = current_time('mysql', 1); } // Construct the attachment array $attachment = array( 'post_mime_type' => $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_name' => $title, 'post_content' => $content, 'post_date' => $post_date, 'post_date_gmt' => $post_date_gmt ); $attachment = apply_filters('afs-import_details', $attachment, $file, $post_id, $import_date); //Win32 fix: $new_file = str_replace(strtolower(str_replace('\\', '/', $uploads['basedir'])), $uploads['basedir'], $new_file); // Save the data $id = wp_insert_attachment($attachment, $new_file, $post_id); if (!is_wp_error($id)) { $data = wp_generate_attachment_metadata($id, $new_file); wp_update_attachment_metadata($id, $data); } //update_post_meta( $id, '_wp_attached_file', $uploads['subdir'] . '/' . $filename ); return $id; }