文件上传错误空白?

时间:2011-07-26 03:21:49

标签: php html file-upload

我正在尝试通过选择html表单来上传文件,然后将其发送到php以进行实际上传并存储在服务器上。但是当我测试它时,我得到一个完全空白的错误,所以我无法弄清楚出了什么问题。

这是html:

<form action="libs/sc.php" method="post" enctype="multipart/form-data" >
    <input type="file" name="c_img1" tabindex="0" /> 
    <input type="file" name="c_img2" tabindex="1" /> 
    <input type="file" name="c_img3" tabindex="2" /> 
    <input type="file" name="c_img4" tabindex="3" /> 
    <input type="file" name="c_img5" tabindex="4" /> 
    <input type="submit" />
</form>

和php:

for($i = 1; $i <= 5; $i++) {
    if(!move_uploaded_file($_FILES["c_img$i"]["tmp_name"],"../images/cards/".$i)) {
        die('File Error: ' . $_FILES['c_img'.$i]['error'] . '<br />');
    }
    else 
        echo 'added' .$i;
}

当我跑步时会发生什么:

Array ( 
     [c_img1] => Array ( 
           [name] => 010_10 (2).JPG 
           [type] => image/jpeg 
           [tmp_name] => C:\Windows\Temp\php21CD.tmp 
           [error] => 0 
           [size] => 1080763 
        ) 
     [c_img2] => Array ( 
           [name] => 011_11 (2).JPG 
           [type] => image/jpeg 
           [tmp_name] => C:\Windows\Temp\php2383.tmp 
           [error] => 0 
           [size] => 612926 
        ) 
     [c_img3] => Array ( 
           [name] => 014_14 (2).JPG 
           [type] => image/jpeg 
           [tmp_name] => C:\Windows\Temp\php247E.tmp 
           [error] => 0 
           [size] => 975170 
        ) 
     [c_img4] => Array ( 
           [name] => 015_15 (2).JPG 
           [type] => image/jpeg 
           [tmp_name] => C:\Windows\Temp\php2616.tmp 
           [error] => 0 
           [size] => 1180438 
        ) 
     [c_img5] => Array ( 
           [name] => 016_16 (2).JPG 
           [type] => image/jpeg 
           [tmp_name] => C:\Windows\Temp\php27FB.tmp 
           [error] => 0 
           [size] => 1142986 
        ) 

  

警告:move_uploaded_file(../ images / cards / 356):无法打开流:第26行的C:\ Apache2 \ htdocs \ test \ libs \ sc.php中没有此类文件或目录警告:move_uploaded_file() :无法在第26行的C:\ Apache2 \ htdocs \ test \ libs \ sc.php中将'C:\ Windows \ Temp \ php21CD.tmp'移动到'../ images/cards/356'文件错误:0 < / p>

1 个答案:

答案 0 :(得分:1)

首先,您应该使用move_uploaded_file来移动上传的文件。 其次,$_FILES['c_img'.$i]["temp_name"],如果我没记错的话,是一个数组,这意味着你需要访问它:$_FILES['c_img'.$i]["temp_name"][0];(原来这是不准确的)

一些基本的调试建议

  • 您是否确认PHP对is_dir('../images/cards/');
  • 返回true
  • 您是否尝试过添加文件扩展名(应该没关系,但有时候Windows会出现问题,但这仍然是一种很好的做法)?您可以只指定.jpg,也可以使用pathinfo$_FILES['c_img'.$i]["name"];获取扩展程序