Я интегрировал jQuery Uploadify в свой плагин WordPress для нескольких загрузок файлов. Форма загрузки Flash сгенерирована нормально, и я могу выбрать файлы и начать загрузку. Uploadify сообщает об «ошибке HTTP» для всех попыток файлов. Используя onError () я вижу, что это ошибка 404.
Странно то, что загрузка файла успешно обрабатывается. Новый файл появляется в моей папке загрузки, и создается запись базы данных. Итак, почему Uploadify сообщает об ошибке?
Любая помощь очень ценится.
Вот код, который я использую:
Uploadify JS
$(document).ready(function() {
$('#file_upload').uploadify({
'scriptData': {'sid': '{$_REQUEST['gallery_uid']}'},
'uploader' : '{$plugin_url}upif/uploadify.swf',
'script' : '{$plugin_url}upif.php',
'cancelImg' : '{$plugin_url}upif/cancel.png',
'auto' : true,
'multi' : true,
'simUploadLimit' : 3,
'fileExt' : '*.jpg;*.gif;*.png;*.zip',
'fileDesc' : 'Image Files'
});
});
Загрузить файл обработчик PHP
<?php
@require_once('../../../wp-blog-header.php'); // Pull in WP functions in order to write to DB
$uid = $_REQUEST['sid']; // Assigned Gallery UID
if (!empty($_FILES)) {
$file_temp = $_FILES['Filedata']['tmp_name'];
$file_orig = basename( $_FILES['Filedata']['name'] ) ;
$exts = explode( '.', $file_orig );
$file_ext = strtolower('.' . $exts[count($exts)-1]);
$file_save = $uid . '_' . date('ymd') . time() . $exts[0] . $file_ext;
$upload_dir = wp_upload_dir();
$target_path = $upload_dir['path'] . '/' . $file_save;
move_uploaded_file( $file_temp, $target_path ); // Move the file to WP's "uploads" path, using generated name
$insert = array(
'guid'=> $uid,
'path'=> $file_save,
'sort_order'=> '0',
'date_created' => date('Y-m-d H:i:s')
);
$wpdb->insert( $wpdb->prefix . 'images', $insert ); // Create DB record
echo '1'; // Success
}
РЕШЕНО: После дальнейшего исследования я смог заставить все работать. Включение wp-blog-header.php должно было повлиять на вывод. Решение для меня было включить по-другому.
Я удалил включение в верхней части моего обработчика PHP и заменил его на:
<?php
@require_once('../../../wp-config.php'); // Pull in WP config elements
@require_once('../../../wp-includes/wp-db.php'); // Pull in WP DB functions