2016-04-24 11 views
0

私はすでにデータベースにINSERTデータを持っているフォームを持っている、私はまた、画像の4倍のファイル入力を持っているフォームは、uplaods画像をすべてのデータを追加し、次のIDとファイル名にランダムな終わりを追加します。phpフォームのアップロードとremaneイメージは、DBに挿入

データベースに追加する

をintentedが、私は今、ファイル名(複数可)を必要とするように、このすべての作品、時にはフォームは時々4倍の画像を1倍imagheを持っていますが、中にファイル名を格納する方法がわからないイムう以下のコードからdb。誰も助けることができますか?私は配列を個々のファイル名に分割する必要があるが、それを行う方法がわからないと仮定する。

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

と私はどのようにこれをデータベースに追加しますか?配列として>? –