2013-11-01 27 views
0

當我從我的代碼上傳多個圖像時,一切都上傳到mysql數據庫,但顯示錯誤說成功: 我只是不想要這個錯誤[錯誤是:注意:未定義的變量:user_id在C:\ wamp \ www \ swaminarayant \ multiple_file_up.php on line 13] 任何人都可以幫我解決這個問題嗎? 我的代碼是:爲什麼這個錯誤是由於我上傳多張圖片?

<?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> 
+0

通過「但顯示錯誤與成功說法」,你的意思是它只顯示'成功'這個詞?因爲那是你通過回聲推測出來的,如果沒有任何錯誤。如果它不是你可以刪除print_r($ errors),我認爲或者更好地配置php.ini以不顯示錯誤。 – JBA

+0

是的,曾經我刪除:的print_r($錯誤),它顯示同樣的錯誤: 爲: 注意:未定義的變量:USER_ID在C:\ WAMP \ WWW \ swaminarayant \ multiple_file_up.php上線13 成功 –

+0

啊,對不起,看看我的回答;) – JBA

回答

0

看看周圍13號線的代碼:

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

價值觀中一部分,你嘗試包括從未上述定義的變量$ 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; 

在情況下,它必須是一個數字,你應該都不錯。

+0

讓我知道它是否工作;) – JBA

+0

我設置爲 $ user_id =''; 現在它運作良好。 謝謝你的線索。 –

+0

非常歡迎:) – JBA