我试图将文件保存在我的服务器上。它适用于小文件,但不适用于大文件。file_get_contents('php:// input');返回空字符串与大文件
在JavaScript中,我发送文件用XMLHttpRequest
如下
var ajax = new XMLHttpRequest();
ajax.open('POST', configuration.backend + 'ajax/uploadVideo', true);
ajax.setRequestHeader('X-File-Name', input.files[0].name);
ajax.setRequestHeader('X-File-Size', input.files[0].size);
ajax.send(input.files[0]);
在PHP这个脚本保存输入到硬盘:
$filename = $_SERVER['HTTP_X_FILE_NAME'];
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
$new_filename = uniqid().'.'.$extension;
$fh = fopen(DOCROOT.'/public/videos/'.$new_filename, 'w');
fwrite($fh, file_get_contents('php://input'));
fclose($fh);
的脚本工作完美地与较小的文件,但不是较大的。它只是创建一个0字节的文件。 (8.7MB不工作,而5.7MB工作)。我没有得到任何PHP错误。错误报告级别为E_ALL & ~E_DEPRECATED
。
我也试过增加post_max_size
,upload_max_filesize
和memory_limit
的值,但没有任何改变产生任何效果。
请原谅我提出这样一个明显的问题,但是您是否在更改php.ini后重新启动了Apache? –
我没有看到任何'file_get_contents',但我看到一个'file_put_contents'。 “放”是问题,是的? – Ohgodwhy
那么,他的上传,而不是下载,我认为... –