PHP如何在上传期间获取tmp文件大小

Posted

技术标签:

【中文标题】PHP如何在上传期间获取tmp文件大小【英文标题】:PHP How to get tmp file size during Upload 【发布时间】:2012-03-29 18:38:10 【问题描述】:

我想实现 php 上传进度条,我的想法是每秒获取 $_FILES['file']['tmp'] 的大小。 但是这里有什么问题,当文件上传时,在 php.ini 中设置的临时目录中不存在文件,但文件成功上传,当我尝试获取 $_FILES['file']['tmp'] 的大小时,它显示错误警告。

<br />
<b>Warning</b>:  filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for D:\Program Files\webserver\temp\phpDD05.tmp in <b>D:\Program Files\webserver\www\test\upload\uploading.php</b> on line <b>5</b><br />

这意味着我认为文件不存在。我们如何将这个想法融合到使用进度条上传成功

【问题讨论】:

Ajax上传进度条,check example 【参考方案1】:

您可以尝试这样的方法来查看是否有错误,如果没有错误则获取文件大小。

<?php
if ($_FILES["file"]["error"] > 0)

  echo "Error: " . $_FILES["file"]["error"] . "<br />";

else

echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

?>

这对你有什么好处?

【讨论】:

欢迎来到 Stack Overflow @Tim Juravich! 我不需要文件大小,但需要 tmp 文件大小。【参考方案2】:

文件被封装在 POST 请求中,因此您需要表单之外的东西来上传文件以及定期监控文件的东西。我建议一些已经制定的解决方案,例如 ajax 上传进度条或类似的解决方案

【讨论】:

以上是关于PHP如何在上传期间获取tmp文件大小的主要内容,如果未能解决你的问题,请参考以下文章

如何解决nginx上传大文件的限制

修改PHP上传文件大小限制

php上传文件大小限制的方法详解

jeecg 怎么 解除上传文件大小限制

php.ini修改php上传文件大小限制的方法详解

由于大小无法上传文件