2014-10-20 126 views
0

尋找以下解決方案:多文件上傳

表單html/php提供了添加多個圖形文件(最多11個文件,最大5MB)的功能。

當發送到服務器腳本應做到以下幾點:

  • 檢查文件是否具有良好的擴展名(JPG,PNG);
  • 根據公式重新命名每個文件<字符串最多32個字符> _ < 000至010>。 <擴展>;
  • 將文件名添加到表中(一個文件=一列,行);
  • 壓縮到最大分辨率1280x1024;
  • 更改4:3圖像上圖形的比例,同時保持相同的比例;
  • 減小文件大小並保存到相應文件夾中的服務器。

我對可能易於使用的解決方案感興趣。
非常感謝您的幫助。

+3

顯示你已經開始用 – Choco 2014-10-20 10:34:37

+0

我目前正在尋找一個組件的代碼。 尚未開始編寫代碼。 – 2014-10-20 10:53:00

+0

@ d0m1n1k_您正在尋找一個完整的代碼解決方案來解決您的問題,而無需自己對此進行任何嘗試? – Alternatex 2014-10-20 10:58:57

回答

1

試試吧,

HTML代碼

<html lang="en"> 
<head> 
    <meta charset="UTF-8" /> 
    <title>Multiple File Ppload with PHP</title> 
</head> 
<body> 
    <form action="" method="post" enctype="multipart/form-data"> 
    <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" /> 
    <input type="submit" value="Upload!" /> 
</form> 
</body> 
</html> 

PHP代碼

<?php 
$valid_formats = array("jpg", "png"); 
$max_file_size = 1280*1024; 
$path = "uploads/"; // Upload directory 
$count = 0; 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Loop $_FILES to exeicute all files 
    foreach ($_FILES['files']['name'] as $f => $name) {  
     if ($_FILES['files']['error'][$f] == 4) { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$f] == 0) {    
      if ($_FILES['files']['size'][$f] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else{ // No error found! Move uploaded files 
       if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) 
       $count++; // Number of successfully uploaded file 
      } 
     } 
    } 
} 
?> 
+0

我非常感謝你。誠然,我無法達到完全的幸福,但你的代碼是一個好的開始。進一步的調整不應該再單獨應付。 – 2014-10-20 16:27:39