我已经尝试了很长一段时间了。但我似乎做不到。我想有一个多图像上传表单,只使用一个输入值
if (isset($_POST['multi_fresh'])) {
$path = '';
$user_id = $_REQUEST['user_id'];
$classification = $_REQUEST['classification'];
$yield = $_REQUEST['yield'];
$price = $_REQUEST['price'];
$farm_name = $_REQUEST['farm_name'];
foreach ($_FILES["farm_photo"]["tmp_name"] as $key => $tmp_name) {
$cl = $classification[$key];
$yl = $yield[$key];
$pr = $price[$key];
$fn = $farm_name[$key];
$im = $img[$key];
if (!empty($pr)) {
$type = $im['type'];
$size = $im['size'];
$name = $im['name'];
$tmp_path = $im['tmp_name'];
$upload = $path . "images/farm/";
if (($type == 'image/jpg' || $type == 'image/jpeg' || $type == 'image/png' || $type == 'image/gif') && $size < 5000000) {
$ext = pathinfo($name, PATHINFO_EXTENSION);
$farmimage = date('YmdHis') . "." . $ext;
if (move_uploaded_file($tmp_path, $upload . $farmimage)) {
$insert = mysql_query("INSERT INTO user_multi_farm set user_id='" . mysql_real_escape_string($user_id) . "',classification='" . mysql_real_escape_string($cl) . "',yield='" . mysql_real_escape_string($yl) . "',price='" . mysql_real_escape_string($pr) . "',farm_name='" . mysql_real_escape_string($fn) . "',farm_photo='" . mysql_real_escape_string($farmimage) . "'") or die(mysql_error());
if ($insert) {
$sld_ins = "Add Sucessfully!";
} else {
$sld_err = "Check Corresponding Fields";
}
}
} else {
$inserts = mysql_query("INSERT INTO user_multi_farm set user_id='" . mysql_real_escape_string($user_id) . "',classification='" . mysql_real_escape_string($cl) . "',yield='" . mysql_real_escape_string($yl) . "',price='" . mysql_real_escape_string($pr) . "',farm_name='" . mysql_real_escape_string($fn) . "'") or die(mysql_error());
if ($inserts) {
$sld_ins = "Add Sucessfully!";
} else {
$sld_err = "Check Corresponding Fields";
}
}
}
}
您只需要将multiple
添加到您的<input>
标记并给出名称数组[]
语法:
<input type="file" name="imgs[]" multiple>
PHP文档有一个指南:上传多个文件
可以上传多个文件,使用不同的名称输入。
也可以同时上传多个文件,并将信息自动组织成数组。为此,您需要在HTML表单中使用与多次选择和复选框相同的数组提交语法:
PHP文档中的示例:
<form action="file-upload.php" method="post" enctype="multipart/form-data">
Send these files:<br />
<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />
<input type="submit" value="Send files" />
</form>
在PHP中访问文件
要访问在PHP中上传的多个文件,使用与单个上传相同的代码;内置的$_FILES
Superglobal.
根据PHP文档$_FILES
是
通过HTTP POST方法上传到当前脚本的项的关联数组。这个数组的结构在POST方法uploads小节中有概述。
你应该能够像其他任何数组一样循环遍历这个关联数组:
foreach($_FILES["userfile"]["tmp_name"] as $key=>$tmp_name)
{
}