使用输入类型文件和PHP循环(无jQuery或Javascript)进行多文件上载
我想一次选择更多的图像文件并上传为1,2,3,4,。。。比如:使用输入类型文件和PHP循环(无jQuery或Javascript)进行多文件上载,php,html,web,Php,Html,Web,我想一次选择更多的图像文件并上传为1,2,3,4,。。。比如: <form action="upload_file.php" method="post" enctype="multipart/form-data"> <input type="file" name="imgs[]" id="imgs" multiple/> <input type="submit" name="submit" value="Submit" /> </for
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="imgs[]" id="imgs" multiple/>
<input type="submit" name="submit" value="Submit" />
</form>
PHP代码:
<?php
if (file_exists("upload/" . $_FILES["imgs"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
//I think loop goes here
===================
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
===================
}
?>
==================================================================
这是我的作品
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploads[]" multiple>
<input type="submit" name="submit" value="Submit" />
</form>
PHP
这是可行的…当您有多个上传时,PHP以一种奇怪(但一致)的方式构建
$\u文件数组。尝试使用三个文件输入创建此表单:
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="imgs[]" id="imgs" multiple />
<input type="submit" name="submit" value="Submit" />
</form>
然后在接收表单的PHP代码中,仅放置:
<?php print_r($_FILES); ?>
因此,您可以看到$\u文件
数组结构。在这一点上,所有的一切都对你来说是清楚的,你将知道如何在上面循环以保存所有上传的图像。祝你好运;) 用以下代码替换您的php代码:
<?php
for($i=0;$i<count($_FILES["imgs"]["name"]);$i++)
{
if (file_exists("upload/" . $_FILES["imgs"]["name"][$i]))
{
echo $_FILES["imgs"]["name"][$i] . " already exists. ";
}
else
{
//I think loop goes here
===================
move_uploaded_file($_FILES["imgs"]["tmp_name"][$i],
"upload/" . $_FILES["imgs"]["name"][$i]);
echo "Stored in: " . "upload/" . $_FILES["imgs"]["name"][$i];
===================
}
}
?>
我已经测试了这个代码,它可以工作,我一解出来就忘了回答
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploads[]" multiple>
<input type="submit" name="submit" value="Submit" />
</form>
获取PHP文件中的数据,如下所示
<?php
$count=1;
foreach ($_FILES['uploads']['tmp_name'] as $file) {
echo '<li>' . $file . '</li>';
copy($file, "uploads/" . $count.".jpg");
echo "Stored in: " . "uploads/" . $count.".jpg";
$count++;
}
?>
HTML支持多个标记。你不知道;您不需要更改html代码。只需如上所述更改php代码即可。。。看这篇文章他们在说什么?是的,你可以添加多个属性到文件中,是的,你也可以使用foreach而不是for loopok。。。wufoo.com/html5/attributes/08-multiple.html见本文,他们在说什么@对不起,我已经告诉过你我错了;)基本上,Udit答案是我建议您通过查看PHP如何构建$\u文件数组来“发现”自己的PHP代码。无论如何,multiple
属性似乎在IE<10上不受支持。这很好。。。您可以添加自己的答案,然后接受它。
<?php
$count=1;
foreach ($_FILES['uploads']['tmp_name'] as $file) {
echo '<li>' . $file . '</li>';
copy($file, "uploads/" . $count.".jpg");
echo "Stored in: " . "uploads/" . $count.".jpg";
$count++;
}
?>