我想上传两个具有不同输入文件选项的不同文件。我想我正在使用标准方法上传文件并复制到不同的文件夹。文件上传后,应该在/temp
文件夹中,可以将文件复制到不同的文件夹。使用以下代码,我只能在temp中查找一个文件,并且它已成功复制到所需的foler。能够复制的文件是第二个上传文件。但是,没有为第一个上载文件创建临时文件。 PHP没有给出任何错误。任何消化?我无法确定以下代码中的问题:
<form>
Select File:
<input type="file" name="file[]" id= "file[]" maxlength="90" />
Select file2:
<input type="file" name="file[]" id= "file[]" maxlength="90"/>
<input type="submit" name = "submit" value="Submit"/>
<?php
if(isset($_FILES["file"])) {
print_r( $_FILES );
$target_dir = "upload/";
echo '<br>';
$no_files = count($_FILES["file"]['name']);
for ($i = 0; $i < $no_files; $i++) {
if ($_FILES["file"]["error"][$i] > 0) {
echo '<br>'. $i;
echo "Error: " . $_FILES["file"]["name"][$i] . "<br>";
}else {
$temp = explode(".", $_FILES["file"]["name"][$i]);
$extension = end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"][$i], $target_dir . $_FILES["file"]["name"][$i]);
echo "<br><font color='green'>".$_FILES["file"]["name"][$i] . " Uploaded Successfully.</font><br>";
}
}
}
?>
</form>
答案 0 :(得分:1)
您的HTML表单似乎不对,并且您不使用数组表单名称。
来自PHP手册:
html客户端:
<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
在服务器端:
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}
详情请见PHP.net