Blogger Information
Blog 16
fans 7
comment 1
visits 11526
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
12月9号- 文件上传
Eric
Original
531 people have browsed it

上传文件步骤:

  • 1、判断是否有选择图片或者判断文件名是否为空
  • 2、设置参数允许上传的文件类型、存放图片的文件名、获取文件参数等
  • 3、判断图片上传是否有错误
  • 4、判断文件是否符合文件类型
  • 5、判断上传文件的大小是否超过预设大小
  • 6、检测存放图片文件夹是否存在,不存在就创建
  • 7、设置新的文件名
  • 8、判断文件是否是由POST方法提交,并将临时文件移动到磁盘

index.php代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>文件上传</title>
  6. </head>
  7. <body>
  8. <form action="upload.php" method="post" enctype="multipart/form-data">
  9. <h3>图片上传</h3>
  10. <input type="file" name="image">
  11. <button>上传</button>
  12. </form>
  13. </body>
  14. </html>

upload.php代码:

  1. <?php
  2. // 1、判断是否有选择图片
  3. if (!isset($_FILES['image']) || empty($_FILES['image']['name'])) {
  4. echo '<script>alert("请选择图片");location.assign("index.php")</script>';
  5. exit;
  6. }
  7. // 2、设置所有参数
  8. $files = $_FILES['image'];
  9. $fileName = $files['name'];
  10. $tempFile = $files['tmp_name'];
  11. $fileSize = $files['size'];
  12. $errorCode = $files['error'];
  13. $fileType = ['jpg', 'jpeg', 'png', 'gif'];
  14. $uploads = 'uploads';
  15. // 3、判断图片是否上传成功
  16. if ($errorCode > 0) {
  17. switch ($errorCode) {
  18. case 1:
  19. die('上传文件超过了配置文件:upload_max_filesize 限制的最大值');
  20. case 2:
  21. die('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');
  22. case 3:
  23. die('文件只有部分被上传');
  24. case 4:
  25. die('没有文件被上传');
  26. case 6:
  27. die('找不到临时文件');
  28. case 7:
  29. die('文件写入失败');
  30. default:
  31. die('未知错误');
  32. }
  33. }
  34. // 4、判断文件是否是被允许上传的类型
  35. $extension = explode('.', $fileName)[1];
  36. if (!in_array($extension, $fileType)) {
  37. echo "<script>alert('不允许上传该类型文件');history.go(-1);</script>";
  38. exit();
  39. }
  40. // 5、判断文件大小是否超过设置的最大上传限制
  41. $allowSize = 1024*1024*2;
  42. if ($fileSize > $allowSize){
  43. echo "<script>alert('文件大小不能超过2M');history.go(-1);</script>";
  44. exit();
  45. }
  46. // 6、检测存放图片的文件是否存在
  47. if (!file_exists($uploads)) {
  48. mkdir($uploads);
  49. }
  50. // 7、设置新文件名,避免文件重名
  51. $newFile = date('YmdHis', time()) . md5(mt_rand(10, 100)) . '.' . $extension;
  52. $path = __DIR__ . DIRECTORY_SEPARATOR . $uploads . DIRECTORY_SEPARATOR . $newFile;
  53. // 8、判断文件是否上传成功,并将文件从临时路径移动到磁盘
  54. if (is_uploaded_file($tempFile)){
  55. if (move_uploaded_file($tempFile, $path)){
  56. echo '<script>alert("文件上传成功!");history.back();</script>';
  57. }else{
  58. die('文件无法移动到指定目录,请检查目录权限');
  59. }
  60. }else{
  61. die('非法操作');
  62. }

代码效果:

课程总结:

  • 1、文件上传,即满足预设的条件参数,文件会先上传到临时文件地址,然后再将临时文件移动到磁盘的过程。
  • 2、history.go(-1)表示后退,history.go(-1)表示后退+刷新

THE END !

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:写得不错, 看来你对js很感兴趣
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post