【发布时间】:2017-01-07 22:57:15
【问题描述】:
我终于让我的异步文件上传工作了,除了它似乎只处理文本文件。
如果我上传一个文本文件,它会工作并保存文件。如果我上传图像,它会失败,firebug 报告响应具有 302 状态,并且我被发送到我的 public_html 的根目录
我认为这可能与文件大小有关,但似乎并非如此,因为我使文本文件大于图像,并且成功了。
我不知道从哪里开始排查,我把PHP相关的sn-p放在下面。
PHP
$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
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 中的内容吗?我的最大帖子大小是 32MB,不知道还有什么影响。
【问题讨论】:
标签: javascript php web cpanel