作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我终于让异步文件上传工作了,但它似乎只处理文本文件。
如果我上传文本文件,它会工作并保存该文件。如果我上传图像,它会失败,firebug 会报告响应状态为 302,并且我会被发送到 public_html 的根目录
我认为这可能与文件大小有关,但似乎并非如此,因为我使文本文件比图像大,并且成功了。
我不确定从哪里开始进行故障排除,我将在下面放置 PHP 相关代码段。
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.");
}
}
我应该设置请求 header 吗?我需要更改 php.ini 中的某些内容吗?我认为我的最大帖子大小是 32MB,不知道还有什么会影响这个。
最佳答案
302
是状态代码,而不是错误代码。这意味着服务器正在将您重定向到另一个页面。但状态为“正常”并已找到。
该问题通常是由于服务器开启了 mod-security
以及过滤引擎过滤上传而引起的。
要解决此问题,请将此代码添加到您的托管帐户的 .htaccess
文件中(如果您是客户),或者在 apache 配置中进行编辑(如果您是管理员):
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
关于javascript - 文件上传302?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248123/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!