2014-10-20 121 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