【发布时间】:2012-08-23 15:18:56
【问题描述】:
我正在使用 Valums File Uploader 通过 XHR 上传文件。我使用的脚本在我的实时服务器上运行良好,而它在我的本地服务器上失败了。相关代码如下:
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
return false;
}
$target = fopen($path, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
chmod($path, 0644);
问题是 $realSize 在我的本地服务器上是空的,而它在我的实时服务器上确实有一个值。因此,在本地服务器上,它会在大小检查时中断。我怀疑这是服务器配置问题,但我不完全知道要查找什么。有人能指出我正确的方向吗?
【问题讨论】:
-
您确定
$input和$temp都是有效资源吗? -
我对@987654326@ 不是很熟悉,但是您的代码看起来不像manual 中的示例。
$temp不是必须是fopen()的结果吗? (当然,除非tmpfile()这样做。) -
嗨,Matt,这是来自 Valums 文件上传器 (valums.com/ajax-upload) 的一段工作代码。但是您质疑资源 $input 和 $temp 的有效性是正确的。 $temp 似乎是空的,所以我会从那个点看一下。
标签: php xmlhttprequest valums-file-uploader