【问题标题】:why are images returning filesize = 0 when being uploaded?为什么上传图片时返回filesize = 0?
【发布时间】:2010-09-19 01:36:33
【问题描述】:

我有一个上传文件的 php 表单,所有文件都运行良好,限制大小设置为 7340032 字节(7Mbs),它工作正常,但是当我尝试上传大于 500kbs 的图像时,我回显了第一个如果:

if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0){

它说图像大小每次都是0,为什么会发生这种情况? post_max_size 的 php.ini 值为 15M,upload_max_filesize 的值为 10M。

【问题讨论】:

  • 你确定文件input上的name是userfile吗?
  • php上传临时文件的分区会不会只剩下
  • 做一个 print_r($_FILES) 来调试。
  • @Yi Jiang,是的,就是这个名字,它适用于任何其他类型的文件。 @Fanis,我正在上传到我的本地主机(使用 WAMP),我的空间远不止于此。
  • @Evert 我这样做并得到: Array ( [userfile] => Array ( [name] => DSCN0477.JPG [type] => [tmp_name] => [error] => 1 [大小] => 0 ) )

标签: php image-processing file-upload


【解决方案1】:

检查上传文件的大小是否非零并不是检查上传是否成功的正确方法。那里有 ['error'] 参数。不完整的上传仍然具有非零大小,但不应处理。更好的检查方法是:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     if ($_FILES['userfile']['error'] !== UPLOAD_ERR_OK) {
        die("File upload error: {$_FILES['userfile']['error']}");
     }
     ... process file here ...
}

错误代码常量为defined here。

【讨论】:

  • mm 显然我不得不重新启动,因为由于某种原因 WAMP 没有获得新的 upload_max_filesize 但你发布的内容实际上帮助我解决了这个问题,谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
  • 2023-03-21
  • 2015-06-21
  • 2022-01-23
  • 1970-01-01
  • 2011-03-01
相关资源
最近更新 更多