欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多文件上传实现

程序员文章站 2022-03-24 09:37:24
...
  • 界面文件

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    7. <title>多文件上传</title>
    8. </head>
    9. <body>
    10. <div>
    11. <h2>多文件上传</h2>
    12. <form action="save.php" method="post" enctype="multipart/form-data">
    13. <input type="file" name="file[]" multiple><button>上传</button>
    14. </form>
    15. </div>
    16. </body>
    17. </html>
  • save.php 文件

  1. <?php
  2. require_once "function.php";
  3. $upfiles=uploadFile($_FILES['file'],['jpg','gif','png']);
  4. // var_dump($_FILES['file']);
  5. foreach($upfiles as $f){
  6. $img='<div><img src="'.$f.'" alt=""></div>';
  7. echo $img;
  8. }
  9. ?>
  • 上传函数文件:function.php
  1. <?php
  2. /**
  3. * $file, 上传文件$_FILES
  4. * $filetypes, 文件扩展名数组,全部小写,如['jpg','gif']
  5. * $des,保存位置
  6. */
  7. function uploadFile($file,$filetypes,$des='./storage'){
  8. // 系统的目录,要有权限才能更改,添加、删除
  9. if(!file_exists($des)){
  10. mkdir($des,0770,true);
  11. chmod($des,0770);
  12. }
  13. if(!empty($file)){
  14. $new_files=[];
  15. $errs=$file['error'];
  16. foreach($errs as $key=> $err){
  17. if($err==0){
  18. $filename=$file['name'][$key];
  19. $ext=array_pop( explode(".",$filename));
  20. $ext=strtolower($ext);
  21. // var_dump($ext);
  22. // exit;
  23. //文件的扩展名是否在数组中
  24. if(in_array($ext,$filetypes)){
  25. // 年月日时分秒 + 随机数
  26. $file_name_new = date('YmdHis',time());
  27. $file_name_new .= rand(1000,9999);
  28. $file_name_new .=".".$ext;
  29. $move_file = move_uploaded_file($file['tmp_name'][$key],$des.'/'.$file_name_new);
  30. if($move_file){
  31. $new_files[]=$des.'/'.$file_name_new;
  32. }
  33. }
  34. }
  35. }
  36. return $new_files;
  37. }else{
  38. return null;
  39. }
  40. }