php - 上传多张带有描述的图片?

标签 php mysql arrays

是否可以在 php 中上传多张图片及其描述?

enter image description here

这是我的代码:

if(isset($_FILES['files'])){
    $gn_id=$_POST['gn_id'];
    $date=date('Y-m-d');
    $errors= array();
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size =$_FILES['files']['size'][$key];
        $file_tmp =$_FILES['files']['tmp_name'][$key];
        $file_type=$_FILES['files']['type'][$key];  
        if($file_size > 2097152){
            $errors[]='File size must be less than 2 MB';
        }       
        $query="INSERT INTO `add_gallery` (`id`, `gn_id`, `photo`, `desc`, `date`) VALUES ('', '$gn_id', '$file_name', '$desc', '$date')";

        $desired_dir="gallery";
        if(empty($errors)==true){
            if(is_dir($desired_dir)==false){
                mkdir("../$desired_dir", 0700);     // Create directory if it does not exist
            }
            if(is_dir("../$desired_dir/".$file_name)==false){
                move_uploaded_file($file_tmp,"../$desired_dir/".$file_name);
            }else{                                  // rename the file if another one exist
                $new_dir="../$desired_dir/".$file_name.time();
                 rename($file_tmp,$new_dir) ;               
            }
         $qu=mysql_query($query);           
        }else{
                print_r($errors);
        }
    }   
}

最佳答案

您可以通过将描述值作为数组发布来完成此任务。

<input name="description[]" value="First Image" />
<input name="description[]" value="Second Image"  />
<input name="description[]" value="Third Image" />
<input name="description[]" value="Fourth Image" />
<input name="description[]" value="Fifth Image" />

然后

$_POST['description'][0] == 'First Image'
$_POST['description'][3] == 'Fourth Image'

一旦你发布了这些值,你就可以进入你的 foreach 循环。在循环中,您可以使用当前索引描述数组获取当前图像描述

// Getting description values as arrays
$Description_Values = $_POST['description'];
// Below iteration counter
$Counter = 0;
// This is your foreach loop which you are using for images
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
// Getting Current Image Description
$current_image_description = $Description_Values[$Counter];
$Counter++;
}

关于php - 上传多张带有描述的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45004429/

相关文章:

java - Java 中可以不使用循环从 3 维数组中获取 2 维数组吗?

c# - 从两个字节数组读取或转换为 Int32

c - 在 for 循环中使用关系运算符测试指针

php - 将价格舍入到下一个 5 或 10 个百分点

php - 这是从 PHP 中的 sql 查询返回字符串的正确方法吗?

php - 从html到mysql数据库的基本输入

c# - ASP.Net MySqlDatabase 空值

mysql - mysql中整列的条目相乘

php - 上传的 zip 文件的 Mime 类型是 application/octet

c# - Newtonsoft.Json 使用 php 7.0 json_encode 数组字符串反序列化问题