2016-04-24 30 views
0

我有一個已經運行的表單,即將數據插入數據庫,我也有4個圖像文件輸入,表單然後添加所有數據,上傳圖像並重命名圖像以匹配下一個ID並將隨機結尾添加到文件名。php表單上傳並保留圖像然後插入數據庫

爲intented

,但我現在需要的文件名(一個或多個)被添加到數據庫的所有作品,有時形式將有1個imaghe有時4倍的圖像,但林不知道如何將文件名存儲在數據庫從下面的代碼。誰能幫忙?我認爲這個數組需要被分解成單獨的文件名,但不知道如何去做。

<?php 
if(isset($_POST['submit'])){ 

// Variables for date&Time logs 
$dateLog = date("y-m-d"); // DATE OF ADDITION 
$timeLog = date("H:i:s", time() - 3600); // TIME OF ADDITION 

// INSERT QUERY 
$sql="INSERT INTO $table1 (firstname, lastname, companyname, phone, email, name, make, serial, catagory, price, location, description, sold, operational, year, clear, rip, version, service, dock, loading, available, extras, dateadded, featured) 
VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[companyname]','$dateLog','No')"; 


$query = mysql_query($sql) or die("Cannot query the database.<br>" . mysql_error()); 

// start of image upload 
$insert_id = mysql_insert_id() or die("Unable to get insert id for image name.<br>" . mysql_error()); 

extract($_POST); 
    $error=array(); 
    $extension=array("jpeg","jpg","png","gif"); 
    foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) 
      { 
       $file_name=$_FILES["files"]["name"][$key]; 
       $file_tmp=$_FILES["files"]["tmp_name"][$key]; 
       $ext=pathinfo($file_name,PATHINFO_EXTENSION); 
       if(in_array($ext,$extension)) 
       { 
        if(!file_exists("../images/listings/".$txtGalleryName."/".$file_name)) 
        { 
         $filename=basename($file_name,$ext); 
         $newFileName=$insert_id."_".mt_rand(1, 99999).".".$ext; 
         move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"../images/listings/".$txtGalleryName."/".$newFileName); 
        } 
        else 
        { 
         $filename=basename($file_name,$ext); 
         $newFileName=$filename.mt_rand(1, 99999).".".$ext; 
         move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"../images/listings/".$txtGalleryName."/".$newFileName); 
        } 
       } 
       else 
       { 
        array_push($error,"$file_name, "); 
       } 
      } 
// end of image upload 

echo '<p>This item was added successfully</p>'; 

} 
?> 

和我的表格;

1: Upload : <input type="file" name="files[]"/><br /> 
2: Upload : <input type="file" name="files[]"/><br /> 
3: Upload : <input type="file" name="files[]"/><br /> 
4: Upload : <input type="file" name="files[]"/><br /> 

感謝所有幫助:)

回答

1

可以使用$ rename_var =蘭特(111111', '999999');並在$ new_changed_name = $ rename_var之前的文件名前面加上它。$ _ FILES ['files'] ['name'];然後使用這個名字,同時將文件保存在文件夾中,就像這樣.. move_uploaded_file('tmp_name','path /'.$ new_changed_name); 並將此$ new_changed_name新名稱插入到數據庫中。

+0

會這樣做循環中的每個文件? –

+0

通過在循環內執行此操作,所有圖像將被重命名...新名稱將像6個隨機數字加上您的文件的原始名稱...如果您上傳abc.jpg,則新名稱將類似於121122abc .jpg .. 6個隨機數字前置。 – Poria

+0

以及如何將這個添加到數據庫?作爲一個數組>? –

相關問題