博客列表 >1209作业:文件上传 文件上传 文件上传

1209作业:文件上传 文件上传 文件上传

张浩刚
张浩刚原创
2019年12月10日 17:30:45891浏览

demo.php

  1. <form action="file.php" method="post" enctype="multipart/form-data">
  2. // name: 最终会成为php中的$_FILES[‘my_file’]
  3. <input type="file" name="my_file">
  4. <button>上传</button>
  5. </form>

file.php

  1. <?php
  2. //文件上传原理
  3. // 1.上传文件类型设置
  4. $fileType = ['jpg','png','gif'];
  5. // 2.上传文件大小限制
  6. $fileSize = 1024*1024*3; //最大不超过3M
  7. // 3.上传的路径地址
  8. $filePath = '/uploads/';
  9. // 4.原始文件名
  10. $fileName = $_FILES['my_file']['name'];
  11. // 5.临时文件名
  12. $tempFile = $_FILMS['my_file']['tmp_name'];
  13. // 6.判断是否上传成功?
  14. $uploadError = $_FILES['my_file']['error'];
  15. if($uploadError > 0){ // 0以上都代表 上传问题
  16. switch($uploadError){
  17. case 1:
  18. case 2: die('上传文件太多');
  19. case 3: die('文件上传不完整');
  20. default: die('未知错误,请重新上传');
  21. }
  22. }
  23. // 7.判断文件扩展名是否正确,第一步的限制上传类型
  24. $type = explode('.', $fileName)[1];
  25. //函数in_array() 搜索数组中是否存在指定的值。
  26. //in_array(值,数组)
  27. //in_array(值,被搜索的数组是否有此值)
  28. if(!in_array($type, $fileType)){
  29. die("不允许上传 {$type} 文件类型");
  30. }
  31. // 8.上传成功后,生成不可重复的文件名
  32. // date('时间显示方式',time()//现在的时间)
  33. // mt_rand(min,max)随机值 sha1()给随机值加密,'.'是分割后缀,最后是图片扩展名
  34. $fileName = date('YmdHis',time()).sha1(mt_rand(1,99)). '.' .$type;
  35. // 9.文件上传
  36. // 函数 is_uploaded_file() 检查指定的文件是否是通过 HTTP POST 上传的。
  37. if(is_uploaded_file($tempFile)){
  38. //函数move_uploaded_file() 将上传的文件移动到新位置。
  39. if(move_uploaded_file($tempFile, __DIR__ . $filePath . $fileName)){
  40. echo '上传成功';
  41. }else{
  42. die('上传失败');
  43. }
  44. }else{
  45. die('非法操作');
  46. }
  47. exit;


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议