上传报告HTTP ERROR 404,即使上传成功

时间:2011-10-17 16:25:37

标签: php javascript jquery uploadify

我已将jQuery Uploadify集成到我的WordPress插件中,用于多个文件上传。 Flash上​​传表单生成正常,我可以选择文件并开始上传。 Uploadify报告所有尝试的文件的“HTTP错误”。使用onError()我看到它是错误404。

奇怪的是,文件上传IS已成功处理。新文件出现在我的uploads文件夹中,并创建了一个数据库记录。那么,为什么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 include必须影响输出。我的解决方案是以不同的方式包含。

我删除了PHP处理程序顶部的include,并将其替换为:

<?php

@require_once('../../../wp-config.php'); // Pull in WP config elements
@require_once('../../../wp-includes/wp-db.php'); // Pull in WP DB functions

1 个答案:

答案 0 :(得分:1)

经过进一步的探索,我能够让事情顺利进行。 wp-blog-header.php include必须影响输出。我的解决方案是以不同的方式包含。

我删除了PHP处理程序顶部的include,并将其替换为:

<?php

@require_once('../../../wp-config.php'); // Pull in WP config elements
@require_once('../../../wp-includes/wp-db.php'); // Pull in WP DB functions