我试图通过选择它的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:WindowsTempphp21CD.tmp
[error] => 0
[size] => 1080763
)
[c_img2] => Array (
[name] => 011_11 (2).JPG
[type] => image/jpeg
[tmp_name] => C:WindowsTempphp2383.tmp
[error] => 0
[size] => 612926
)
[c_img3] => Array (
[name] => 014_14 (2).JPG
[type] => image/jpeg
[tmp_name] => C:WindowsTempphp247E.tmp
[error] => 0
[size] => 975170
)
[c_img4] => Array (
[name] => 015_15 (2).JPG
[type] => image/jpeg
[tmp_name] => C:WindowsTempphp2616.tmp
[error] => 0
[size] => 1180438
)
[c_img5] => Array (
[name] => 016_16 (2).JPG
[type] => image/jpeg
[tmp_name] => C:WindowsTempphp27FB.tmp
[error] => 0
[size] => 1142986
)
)
警告:move_uploaded_file(../images/cards/356):打开流失败:在C:Apache2htdocstestlibssc.php中没有这样的文件或目录在第26行警告:move_uploaded_file():无法移动"C:WindowsTempphp21CD.tmp"到".."/images/cards/356' in C:Apache2htdocstestlibssc.php on line 26 File Error: 0
首先,应该使用move_uploaded_file
来移动上传的文件。第二,如果我没记错的话,(事实证明这是不准确的)$_FILES['c_img'.$i]["temp_name"]
是一个数组,这意味着您需要访问它:$_FILES['c_img'.$i]["temp_name"][0];
.
一些基本的调试建议
-
您确认PHP为
- 你有没有试过添加一个文件扩展名(应该没关系,但有时Windows变得古怪,这是一个很好的做法)?你可以只分配
.jpg
,也可以使用pathinfo
从$_FILES['c_img'.$i]["name"];
获取扩展名。
is_dir('../images/cards/');
返回true了吗?