2016-12-06 14 views
0

私の主な問題は、2つの異なるファイルアップロードリンクがあり、どちらも目的が異なることです。例:a)ライセンスです。b)写真があるので、両方をアップロードする必要があります。さまざまな場所。私が望んだのは、連想配列の代わりに数値配列としてファイルプロパティを扱うことです.2つのファイルを区別する方法についての提案もあります。ここでファイルを通常の配列として表示する方法

は、入力されたコードサンプルです:ここで

<label for="file-upload" class="custom-file-upload"> 
    <i class="fa fa-cloud-upload"> 
    </i>Upload License 
</label> 
<input id="file-upload" name="files[]" type="file"> 
<label for="file-upload" class="custom-file-upload"> 
    <i class="fa fa-cloud-upload"> 
    </i>Upload Photo 
</label> 
<input id="file-upload" name="files[]" type="file"> 

アップロードスクリプト(NOTE-Iはまた、(array_valuesを使用して試してみました))

<?php 
$name  = $_POST['name']; 
$email  = $_POST['email']; 
$tmpname = array_values($_FILES['files']['tmp_name']); 
$filename = array_values($_FILES['files']['name']); 
$filesize = array_values($_FILES['files']['size']); 
$filetype = array_values($_FILES['files']['type']); 
$date12  = date('Y-m-d'); 
//for photo 
$file_name2 = $filename[0]; 
$ext2  = pathinfo($file_name2, PATHINFO_EXTENSION); 
$file_name22= $name.".".$ext2; 
$file_size2 = $filesize[0]; 
$file_tmp2 = $tmpname[0]; 
$file_type2 = $filetype[0]; 
$extensions = array("jpg","jpeg","png","pdf","zip","rar"); 
$type  = "photo"; 
$desired_dir = "user_data"; 

if(in_array($ext2,$extensions) === false) 
{ 
    $errors2 = "Extension not allowed!"; 
} 
else 
{ 
    //Added file size limit 
    if($file_size2 > 2097152) 
    { 
     $errors2 = 'File size must be less than 2 MB'; 
    } 
    if(empty($errors2) == true) 
    { 
     // Inserting info into database for easy retrieval 
     $query1 = $this->pdo->prepare(" 
      INSERT into upload_data (NAME,EMAIL,FILE_NAME,FILE_SIZE,FILE_TYPE,date1,file_ext,type) 
      VALUES('$name','$email','$file_name22','$file_size2','$file_type2','$date12','$ext2','$type') 
     "); 
     $query1->execute(); 

     if(is_dir($desired_dir) == false) 
     { 
      mkdir("$desired_dir", 0700);  // Create directory if it does not exist 
     } 
     if(is_dir("$desired_dir/".$file_name22) == false) 
     { 
      move_uploaded_file($file_tmp,"user_data/".$type.$file_name22); 
     } 
     else 
     { 
      //rename the file if another one exist 
      $new_dir = "user_data/".$file_name22.time(); 
      rename($file_tmp2,$new_dir) ; 
     } 
     echo " 
     <script> 
     Materialize.toast('Successfully Uploaded!', 8000) 
     </script>"; 
    } 
    else 
    { 
     echo " 
     <script> 
     Materialize.toast($errors, 8000) 
     </script>"; 
    } 
} 

がためにあなたに

+0

まず、idを2度使用しないでください。あなたの実際の質問にお答えしてください:あなたは何を試しましたか、何を得るのですか、それはなぜ機能しませんか? – Cashbee

+0

あなたはhtmlで違った名前を付けてみましたが、$ _FILES ['license']と$ _FILES ['photo']でファイルを取得しましたか? – Cashbee

+0

はい私はそれらと違った名前を付けてみましたが、それはうまくいかないようです。私が知っているのはアップロードされていないということだけです。アップロードスクリプトもありますが、それはここの犯人ではありません。ここでの編集 –

答えて

0

ありがとうれますフォームにファイルをアップロードするには、フォームにenctype = "multipart/form-data"が必要です。 ライセンスと写真などの異なる入力に異なる名前を付けます。その後、$ _FILES ['license']と$ _FILES ['photo']を使ってPHPのファイルにアクセスできます。

+0

私のフォームには既に含まれています –

+0

もう一度同じことをやり直してみてください。おそらくコード内にあるいくつかのエラーを取り除いて、今すぐ動作します。とにかく助けてくれてありがとうございます。 –

関連する問題