【问题标题】:Uploading images into a folder将图像上传到文件夹
【发布时间】:2015-02-02 19:55:47
【问题描述】:

我正在尝试将多个文件上传到一个文件夹并将文件名保存到数据库中。我的代码无法将文件上传到文件夹中。

这是我的代码:

<?php
if(isset($_FILES['files'])){
    $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 pictures (PictureName) VALUES('$file_name'); ";
        $desired_dir="user_data";
        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) ;               
            }
         mysql_query($query);           
        }else{
                print_r($errors);
        }
    }
    if(empty($error)){
        echo "Success";
    }
}
?>

<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="files[]" multiple/>
    <input type="submit"/>
</form>

【问题讨论】:

  • 文件未上传...您的表单是否具有有效的 enctype 并且是 POST 方法?
  • 添加到您的 html 表单中:enctype="multipart/form-data"
  • @Fred-ii 是的,我的 enctype 和 post 方法有效
  • 在您打开&lt;?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后立即将错误报告添加到文件顶部,看看它是否会产生任何结果。
  • 我已经更新了上面的表单代码

标签: php mysql file-upload


【解决方案1】:

尝试使用 for 循环并将当前图像存储在数据库中并移动它

$image_array = $_FILES['files']['name'];
$tmp_array = $_FILES['files']['tmp_name'];
for ($move_files=0; $move_files < count($image_array); $move_files++) { 
        $image = "$desired_dir/".$image_array[$move_files];
        $tmp_image = $tmp_array[$move_files];
//do other stuff like checking if image exists
    code here
//
 $query="INSERT into pictures (PictureName) VALUES('$image'); ";
 $db-exec($query); 
        move_uploaded_file($tmp_image, $image);
     }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2015-04-24
    • 2014-10-24
    • 2020-01-10
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多