为了避免post_max_size限制问题…同时也避免了内存不足的问题:
在客户端
- 使用PUT而不是POST:
xhr.open("put", "upload.php", true);- 添加自定义标头以指定原始FileName和FileSize:
xhr.setRequestHeader("X-File-Name", file.name);xhr.setRequestHeader("X-File-Size", file.size);- 直接在XHR send方法中使用File对象:
xhr.send(file);
请注意,可以通过input [type = file] DOM对象的“ files”属性直接获取File对象
在服务器端
- 通过$ _SERVER读取自定义标头:
$filename = $_SERVER['HTTP_X_FILE_NAME'];
$filesize = $_SERVER['HTTP_X_FILE_SIZE'];
- 使用php:// input读取文件数据:
$in = fopen('php://input','r');这样您就可以无限制地发送非常大的文件(1GB或更大)!!!
此代码适用于FireFox 4 +,Chrome 6 +,IE10 +



