2016-04-24 53 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

以及如何将这个添加到数据库?作为一个数组>? –