0

当我从我的代码上传多个图像时,所有内容都上传到 mysql 数据库,但显示错误并说成功:我只是不想要这个错误。[错误是:注意:未定义变量:C:\wamp\www\ 中的 user_id第 13 行的 swaminarayant\multiple_file_up.php] 谁能帮我解决这个问题?我的代码是:

<?php include 'connect.php';?>
<?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 upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
$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>
4

1 回答 1

0

在第 13 行查看您的代码:

$query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES 
('$user_id','$file_name','$file_size','$file_type'); ";

在 VALUES 部分中,您尝试包含上面从未定义过的变量 $user_id。您正在正确设置其他值:

$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_type=$_FILES['files']['type'][$key];  

但是您缺少 $user_id 的定义。例如,如果您插入:

$user_id = "foo";

或者

$user_id = 1;

如果它必须是一个数字,你应该一切都好。

于 2013-11-01T11:00:42.550 回答