FineUploader - добавить идентификатор файла из ответа в превью

Я использую следующий скрипт Wordpress для обработки загрузок из FineUploader:

require_once($_SERVER['DOCUMENT_ROOT']. '/wp-load.php');
include_once($_SERVER['DOCUMENT_ROOT']. '/wp-admin/includes/media.php');
include_once($_SERVER['DOCUMENT_ROOT']. '/wp-admin/includes/file.php');
include_once($_SERVER['DOCUMENT_ROOT']. '/wp-admin/includes/image.php');

if(!$_FILES) exit();

if(isset($_FILES['qqfile'])) {$files = $_FILES['qqfile'];}

$upload_dir = wp_upload_dir();

$file_name = strtolower(sanitize_file_name($files['name']));
$file_name = $upload_dir['path'] . '/' . basename($file_name);
$upload_overrides = array( 'test_form' => false );
$file_post = wp_handle_upload($files,$upload_overrides); //Posts File


$file_link = $file_post['file'];
$file_type = wp_check_filetype(basename($file_link), null); //File Extension

$post_name = preg_replace('/\.[^.]+$/', '', basename($file_link)); //Post Name

$attachment = array(
    'guid' => $file_link,
    'post_mime_type' => $file_type['type'],
    'post_title' => $post_name,
    'post_content' => '',
    'post_status' => 'inherit'
);

$attach_id = wp_insert_attachment($attachment, $file_name, $_POST['post_id']);

$attach_data = wp_generate_attachment_metadata($attach_id, $file_name);

$attach_final = wp_update_attachment_metadata($attach_id, $attach_data);

$response['attachment_id'] = $attach_id;
$response['success'] = 'true';

echo json_encode($response);
exit();

Я возвращаю success и attachment_id. Как я могу добавить идентификатор вложения в сгенерированный предварительный просмотр, чтобы я мог передать его обратно, когда мне нужно удалить файл?


person user1049961    schedule 27.04.2014    source источник


Ответы (1)


Приведенный ниже код принимает параметр, возвращенный в ответе сервера на загрузку, и гарантирует, что он будет передан в качестве параметра при отправке запроса на удаление для того же файла:

$("#fine-uploader-container").fineUploader({
    callbacks: {
        onComplete: function(id, name, response) {
            this.setDeleteFileParams({attachment_id: response.attachment_id}, id);
        }
    }
});

Обратите внимание, что в приведенном выше коде отсутствуют некоторые обязательные параметры (например, конечная точка запроса), чтобы сосредоточиться конкретно на решаемой проблеме.

person Ray Nicholus    schedule 27.04.2014
comment
Спасибо, это один из лучших саппортов, которые я когда-либо видел! Отличная работа. - person user1049961; 28.04.2014