首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件上传302?

文件上传302?
EN

Stack Overflow用户
提问于 2016-08-31 11:14:47
回答 1查看 2.6K关注 0票数 0

我终于使我的异步文件上传工作,除了它似乎只处理文本文件。

如果我上传一个文本文件,它会工作并保存该文件。如果我上传一个图像,它会失败,firebug报告响应有302状态,并且我被发送到我的public_html的根目录。

我认为这可能与文件大小有关,但似乎并非如此,因为我使文本文件比图像更大,而且效果很好。

我不知道从哪里开始疑难解答,我会把PHP相关的片段放在下面。

代码语言:javascript
复制
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME']:false);
echo $fn;

try{
    file_put_contents("upload/".$fn, file_get_contents("php://input"));
    //echo file_get_contents("upload/".$fn);
}catch(exception $e){
    echo $e->getMessage();
}

JS

代码语言:javascript
复制
function UploadFile(file){
    var xhr = new XMLHttpRequest();
    //on the below if
    //xhr.upload: returns a XMLHttpRequestUpload Object, I believe just to check if it's supported in broswer
    if (xhr.upload){
        xhr.open("POST","http://domain.com/absolutepath/what.php",true);
        xhr.setRequestHeader("X-FILENAME",file.name);

        xhr.onreadystatechange = function(){
        if(xhr.status == 200 && xhr.readyState == 4){
            callback(xhr.responseText);
        }
    }
    xhr.send(file);
    }else{
        alert("Sorry, don't think this is supported in your browser.");
    }
}

是否有我应该设置的请求头?php.ini里有什么东西我需要改变吗?我的最大帖子大小是我认为32 My,不知道还会有什么影响。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 11:23:39

302是状态代码,而不是错误代码。这意味着服务器将您重定向到另一个页面。但状态还好找到了。

这个问题通常是由服务器打开mod-security和过滤器引擎过滤上传造成的。

为了解决这个问题,如果您是客户端,请将以下代码添加到您的托管帐户的.htaccess文件中,或者如果您是管理员,则在administrator中进行编辑:

代码语言:javascript
复制
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39248123

复制
相关文章

相似问题

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