2015-12-22 2 views
2

В настоящее время у меня есть опция загрузки для пользователя, и она будет загружаться в папку и обновлять базу данных с именем файла, а затем извлекаться позже.PHP Upload - несколько файлов и ограничение типов файлов

Я хотел бы иметь возможность делать несколько загрузок, и каждый загруженный файл переходит в определенные столбцы на выбранное поле загрузки и загружает указанный файл.

3 Просмотреть разделы (параметры загрузки), 1 является badgephoto, 2 является водительским удостоверением, 3 является картой социального страхования.

если возможно, загрузите каждый файл в свое собственное указанное расположение папки.

Я хотел бы также ограничить все файлы в исключении для типов изображений, PDF или файлов документов.

В настоящее время у меня есть следующее.

if(isset($_POST['btn-upload'])) 
{  

    $file = rand(1000,100000)."-".$_FILES['file']['name']; 
    $file_loc = $_FILES['file']['tmp_name']; 
    $file_size = $_FILES['file']['size']; 
    $file_type = $_FILES['file']['type']; 
    $folder="badge/"; 

    // new file size in KB 
    $new_size = $file_size/1024; 
    // new file size in KB 

    // make file name in lower case 
    $new_file_name = strtolower($file); 
    // make file name in lower case 

    $final_file=str_replace(' ',$FirstName,$new_file_name); 

    if(move_uploaded_file($file_loc,$folder.$final_file)) 
    { 
     $sql="UPDATE users t1 SET t1.badgephoto='$final_file', t1.badgetype='$file_type', t1.badgesize='$new_size' WHERE t1.API='$API'"; 

     mysql_query($sql); 
     ?> 
     <script> 
     alert('successfully uploaded'); 
     window.location.href='badgephoto.php?success'; 
     </script> 
     <?php 
    } 
    else 
    { 
?> 
     <script> 
     alert('error while uploading file'); 
     window.location.href='badgephoto.php?fail'; 
     </script> 
     <?php 
    } 
} 

HTML

<form action="badgephoto.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" accept="application/msword, text/plain, application/pdf, image/*" /> <!-- would be badgephoto --> 
    <input type="file" name="file_drivers" accept="application/msword, text/plain, application/pdf, image/*" /> 
    <input type="file" name="file_social" accept="application/msword, text/plain, application/pdf, image/*" /> 
    <button type="submit" name="btn-upload">Upload Badge Photo</button> 
    </form> 

Любая помощь будет принята с благодарностью.

+0

http://stackoverflow.com/questions/6755192/uploaded-file-type-check-by-php --- передать этот пост – pTi

+0

действительно не понимаю, как я бы построить, что в мой код. @pTi – Kray

+1

проверить полный код ниже – pTi

ответ

1
if(isset($_POST['btn-upload'])) 
{  
    foreach ($_FILES as $key => $value) { 
    $file = rand(1000,100000)."-".$_FILES[$key]['name']; 
    $file_loc = $_FILES[$key]['tmp_name']; 
    $file_size = $_FILES[$key]['size']; 
    $file_type = $_FILES[$key]['type']; 
    $folder="badge/"; 

    // new file size in KB 
    $new_size = $file_size/1024; 
    // new file size in KB 

    // make file name in lower case 
    $new_file_name = strtolower($file); 
    // make file name in lower case 

    $final_file=str_replace(' ',$FirstName,$new_file_name); 

    $allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); 
    $detectedType = exif_imagetype($file_loc); 
    $fileTypecorrect = in_array($detectedType, $allowedTypes); 


     if($new_size < 5120 && $fileTypecorrect){ 

      if(move_uploaded_file($file_loc,$folder.$final_file)) 
      { 
       $sql="UPDATE users t1 SET t1.badgephoto='$final_file', t1.badgetype='$file_type', t1.badgesize='$new_size' WHERE t1.API='$API'"; 

       mysql_query($sql); 
       ?> 
       <script> 
       alert('successfully uploaded'); 
       window.location.href='badgephoto.php?success'; 
       </script> 
       <?php 
      } 
     } 
    } 
    else 
    { 
?> 
     <script> 
     alert('error while uploading file'); 
     window.location.href='badgephoto.php?fail'; 
     </script> 
     <?php 
    } 
} 
+0

добавлен код с несколькими загрузками файлов – pTi

+0

Ваша форма html должна использовать "" – pTi

+0

ОК, я это понимаю. С редактированием, которое вы сделали, он не загружает путь изображения к новым столбцам в таблице db. Как он структурирован, он будет записывать 3 имени в один столбец и поверх предыдущего имени загрузок. правильно? @pTi – Kray

Смежные вопросы