-1

我遇到了这个脚本的问题,没有调用标头重定向,但 MySQL 查询调用了。

当 MySQL 查询被调用而标题没有被调用时,这对我来说看起来很奇怪?

应该重定向的 PHP 脚本:

if (array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ) {

    $pic = $_FILES['pic'];

    if (!in_array(get_extension($pic['name']),$allowed_ext)) {
        exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
    }   

    // Move the uploaded file from the temporary 
    // directory to the uploads folder:

    if (move_uploaded_file($pic['tmp_name'], $upload_dir.$key.'-'.$pic['name'])) {
        $name = $key.'-'.$pic['name'];
    $query = "INSERT INTO `uploads` (id, file_name, up_date, rm_date) VALUES ('$id', '$name', '$up_date', '$rm_date')"; 
    mysql_query($query) or die(mysql_error()); // **Get called**
    header("Location: download.php?id=$id"); // **Does not get called**
    exit();

    }

}

和调用 PHP 脚本的 Javascript

$(function(){

    var dropbox = $('#dropbox'),
        message = $('.message', dropbox);

    dropbox.filedrop({
        // The name of the $_FILES entry:
        paramname:'pic',

        maxfiles: 1,
        maxfilesize: 25,
        url: 'upload.php',

        uploadFinished:function(i,file,response){
            $.data(file).addClass('done');
            // response is the JSON object that upload.php returns
        },

        error: function(err, file) {
            switch(err) {
                case 'BrowserNotSupported':
                    showMessage('Your browser does not support HTML5 file uploads!');
                    break;
                case 'TooManyFiles':
                    alert('Too many files! Only one at same time is allowed.');
                    break;
                case 'FileTooLarge':
                    alert(file.name+' is too large! Please upload files up to 25mb.');
                    break;
                default:
                    break;
            }
        },

        // Called before each upload is started
        beforeEach: function(file) {
            if(!file.type.match(/^image\//)) {
                alert('Only images are allowed!');

                // Returning false will cause the
                // file to be rejected
                return false;
            }
        }
    });
}); 
4

1 回答 1

2

我假设您希望将调用客户端重定向到另一个页面?好吧,您必须在这里通过 JavaScript 执行此操作,根据您从服务器收到的响应进行操作。由于您的浏览器实际上并没有“转到”您通过 JS 请求的页面,因此重写的标头不会影响您客户端的位置。

您可以使用

window.location = "http://www.example.com/"

通过 JavaScript 重定向。

希望有帮助。

于 2013-01-01T20:41:18.467 回答