多个表单上传与php mysql中的图像

时间:2016-08-28 07:20:22

标签: php

我一直试图让这项工作工作很长一段时间。但我似乎无法使其发挥作用。我想要一个只使用一个输入值的多图像上传表格

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";
                }
            }

        }
    }

1 个答案:

答案 0 :(得分:0)

您只需将multiple添加到<input>代码中,并为名称提供数组[]语法:

<input type="file" name="imgs[]" multiple>

PHP文档有一个指南:Uploading Multiple Files

  

可以使用不同的名称上传多个文件进行输入。

     

也可以同时上传多个文件,并为您自动组织数组信息。为此,您需要在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超级全球。

根据PHP documentation $_FILES

  

通过HTTP POST方法上传到当前脚本的关联项目数组。 POST方法上传部分概述了此数组的结构。

你应该像其他任何一样遍历这个关联数组:

foreach($_FILES["userfile"]["tmp_name"] as $key=>$tmp_name)
{

}