我不确定为什么我的代码下面的代码不能处理托管上大于50kb的任何文件,尽管我在localhost上工作正常。
我测试了很多不同的文件大小,我很确定50kb是它的限制。如果文件大于50kb,则永远不会传递给process.php。如果文件小于50kb,则会传递给process.php ok。
有没有人可以帮我解决这个问题。我几个小时都陷入了这个问题。
我确实将php.ini中的upload_max_filesize
设置为5M。
$( document ).ready(function() {
$('#img_uploader').on('change', function()
{
uploadFiles(this.files);
}
});
function uploadFiles(fileList)
{
var xhr = new XMLHttpRequest();
var formData = new FormData();
for (var i = 0; i < fileList.length; i++) {
var file = fileList[i];
if (!file.type.match('image.*')) {
continue;
}
formData.append('photos[]', file);
formData.append('request', "uploadImg");
}
xhr.open('POST', 'process.php', true);
xhr.onload = function () {
if (xhr.status === 200) {
var data = xhr.responseText;
console.log(data);
//convert_json_append_HTML(data);
} else {
alert('An error occurred!');
}
};
xhr.send(formData);
}
更新:测试结果
我花了6个小时来找到问题。
这真的很受欢迎。
检查所有Javascript和PHP代码的1/4小时,记录每一步以确保代码没有任何问题。
2 /无论我设置了什么限制,更改这三个varables都没有解决问题。所以我把它们改为默认。
3 /浏览器测试:
创建了2个文件:test_1.php和test_2.php。 (基本HTML,不涉及Javascript)
test_1.php
<form action="test2.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
test_2.php
<?php
var_dump($_FILES);
HTTP :
铬:
火狐:
Internet Explorer:
HTTPS
铬:
火狐:
Internet Explorer:
我不确定为什么大于50kb的文件无法通过Chrome在HTTPS协议上从test_1.php传递到test_2.php。这里有人知道原因吗?或者可以尝试在自己的服务器上测试它。
答案 0 :(得分:3)
您需要为3个变量Check this tutotial
设置所需的值答案 1 :(得分:3)
我想出了这个问题。
卡巴斯基互联网安全自动将脚本注入任何加载Chrome的网页(IE和FF不受影响)。
该脚本阻止任何大于50kb的包通过HTTPS协议发送到Web服务器。
解决方案: 卡巴斯基互联网安全&gt;设置&gt;附加&gt;网络&gt;
答案 2 :(得分:-1)
在我的情况下,@echo off
set /p math=<RAM.txt
set /a calculation=%math%
echo. >> RAM.txt
echo %calculation% >> RAM.txt
中的upload_max_filesize
,memory_limit
,post_max_size
设置为20M以下的最小值,这可能导致ajax无法将请求发送到服务器的PHP文件。