首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax请求成功,但收到的responseText为空?

Ajax请求成功,但收到的responseText为空?
EN

Stack Overflow用户
提问于 2015-09-02 03:13:16
回答 2查看 76关注 0票数 0

我正在发出一个Ajax请求,以更新Mysql表。当我成功上传pdf文件时,表中的文件名和文件路径会相应地更新。我得到的问题是这样的。当我上传一个小文件(414kb)时,上传成功,并且我能够更新我的记录。当文件很大(3.6Mb)时,上传看起来是成功的,但是我从Ajax请求中得到的responseText是空白的。我使用IF/ELSE语句处理了php端,因此应该不会有“空白”响应。我真的不明白问题出在哪里。请看下面的代码。

我的“upload_max_filesize”是32M。

JS:

代码语言:javascript
复制
 function completeHandler(event){
    document.getElementById('p_status').style.color = '#19A347';

    if(xmlhttp_file.readyState == 4 && xmlhttp_file.status == 200){
        if(xmlhttp_file.responseText == 'update_success'){
            console.log('congratulations. Success');
        }else{
            console.log('fail!');
            console.log('responsText: '+xmlhttp_file.responseText);
            console.log('xmlhttp_file.readyState: '+ xmlhttp_file.readyState);
            console.log('xmlhttp_file.status: '+ xmlhttp_file.status);

        }
    }
}

PHP:

代码语言:javascript
复制
 $move_success = move_uploaded_file($file_TmpPath, "$pdf_dir/$file");
        if($move_success){

            // ESCAPE CHARACTERS BEFORE INSERTION INTO _DB
            // INSERT 'filename', 'filename_uniq', 'filepath'
            $file_name = $mysqli->real_escape_string($file_name);
            $file_id = $mysqli->real_escape_string($file_id);
            $file = $mysqli->real_escape_string($file);
            $filepath = $mysqli->real_escape_string("$pdf_dir/$file");

            $sql = "UPDATE pdf_library SET filename='$file_name', filename_uniq='$file_id', filepath='$filepath' WHERE id='$idOfPost'";

            $result = $mysqli -> query($sql);
            if($result){
                echo 'update_success';
            }else{
                echo 'update_fail';
            }


        }else{
            echo 'move fail';
        }

上传大型pdf -Console时:

代码语言:javascript
复制
    fail!
    new_home.js:1473 responsText: 
    new_home.js:1474 xmlhttp_file.readyState: 4
    new_home.js:1475 xmlhttp_file.status: 200
EN

回答 2

Stack Overflow用户

发布于 2015-09-02 03:18:37

PHP会自动限制文件大小,只上传特定大小的文件。看起来您没有检查文件大小是否等于或小于允许的最大文件大小。默认值为2 MB,您必须更改它才能上传更多内容。

PHP change the maximum upload file size

票数 0
EN

Stack Overflow用户

发布于 2015-09-02 03:26:35

您应该在$_FILESmove_uploaded_file上进行错误调试,以准确了解发生了什么(尽管似乎您正在运行您的MAX_FILE_SIZE配置,因为如果您在较大的文件大小上获得不同的结果,这将是第一个直觉)

可以通过签入$_FILES['filename']['error']来调试$_FILES全局变量

http://php.net/manual/en/features.file-upload.errors.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32339234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档