PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > 12月09日_PHP文件上传

12月09日_PHP文件上传

fkkf467
fkkf467 原创
2019年12月12日 17:17:47 665浏览

1. 文件上传

form.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>文件上传</title>
  6. </head>
  7. <body>
  8. <h2>文件上传</h2>
  9. <!--文件上传必须是post类型-->
  10. <form action="upload_file.php" method="post" enctype="multipart/form-data">
  11. <!-- name 一定要有,因为name最终会成为php中的$_FILES['my_file']-->
  12. <input type="file" name="my_file">
  13. <button>上传</button>
  14. </form>
  15. </body>
  16. </html>

upload_file.php

  1. <?php
  2. // 文件上传
  3. // 1. 配置上传参数
  4. // 允许上传的文件类型
  5. $fileType = ['jpg', 'png', 'gif'];
  6. // 允许上传的文件大小,限制为3M
  7. $fileSize = 3145728;
  8. // 文件上传的路径
  9. $filePath = '/uploads/';
  10. // 原始文件名
  11. $fileName = $_FILES['my_file']['name'];
  12. // 临时文件名
  13. $tempFile = $_FILES['my_file']['tmp_name'];
  14. // 2. 判断是否上传成功
  15. $uploadError = $_FILES['my_file']['error'];
  16. if ($uploadError > 0) {
  17. switch ($uploadError) {
  18. case 1:
  19. case 2:
  20. die('上传文件不能超过3M');
  21. case 3:
  22. die('上传文件不完整');
  23. case 4:
  24. die('没有选择文件');
  25. default:
  26. die('未知错误');
  27. }
  28. }
  29. // 3. 判断文件扩展名是否正确
  30. $extension = explode('.', $fileName)[1];
  31. if (!in_array($extension, $fileType)) {
  32. die('不允许上传' . $extension . '类型的文件');
  33. }
  34. // 4. 将上传后的文件重命名,防止同名文件覆盖
  35. $fileName = date('YmdHis', time()) . md5(mt_rand(1, 99)) . '.' . $extension;
  36. // 5. 上传文件
  37. // 判断是否是通过POST传值
  38. if (is_uploaded_file($tempFile)) {
  39. if (move_uploaded_file($tempFile, __DIR__ . $filePath . $fileName)) {
  40. echo '<script>alert("上传成功");history.back();</script>';
  41. } else {
  42. die('上传失败');
  43. }
  44. } else {
  45. die('非法操作');
  46. }
  47. exit();



2. 总结

学会了文件上传操作的相关过程。

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