2010-09-19 122 views
2

我有一个上传文件的php表单,并且所有文件都能正常工作,而且极限大小设置为7340032字节(7Mbs),并且工作正常,但是当我尝试上传大于500kbs的图像时,第一个如果:为什么图像在上传时返回filesize = 0?

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

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

+0

你确定'input'文件的'name'是'userfile'吗? – 2010-09-19 01:43:10

+0

可以将php上传临时文件的分区只剩下<500kb空间吗? – Fanis 2010-09-19 01:48:49

+0

执行print_r($ _ FILES)进行调试。 – Evert 2010-09-19 01:58:49

回答

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

+0

毫米显然我不得不重启,因为由于某种原因WAMP没有得到新的upload_max_filesize,但是你发布的内容实际上帮助我弄清楚了,谢谢:) – Tsundoku 2010-09-19 02:18:39