博客列表 >upload文件上传

upload文件上传

P粉191340380
P粉191340380原创
2022年08月25日 22:46:46503浏览

单文件上传

  1. <?php
  2. printf('<pre>%s</pre>', print_r($_FILES,true));
  3. if (isset($_FILES['my_pic'])){
  4. // 原始文件名
  5. $name = $_FILES['my_pic']['name'];
  6. // 临时文件名
  7. $tmpName = $_FILES['my_pic']['tmp_name'];
  8. // 错误代码
  9. $error = $_FILES['my_pic']['error'];
  10. if ($error >0) {
  11. $tips = '<span style = "color:red">上传失败</span><br>';
  12. switch($error){
  13. case 1:
  14. $tips = '大小超过了php.ini中的允许上传的文件大小';
  15. break;
  16. case 2:
  17. $tips = '大小超过了表单中(MAX_FILE_SIZE)的允许上传的文件大小';
  18. break;
  19. case 3:
  20. $tips = '文件只有部分被上传';
  21. break;
  22. case 4:
  23. $tips = '没有文件被上传';
  24. break;
  25. case 5:
  26. $tips = '找不到临时目录';
  27. break;
  28. case 6:
  29. $tips = '文件写入失败,请检查目录权限';
  30. break;
  31. }
  32. echo "<p>$tips</p>";
  33. } else{
  34. // 判断上传方式是否合法
  35. if(is_uploaded_file($tmpName)){
  36. // 文件类型白名单
  37. $allow = ['jpg', 'jpeg', 'png', ''];
  38. // 扩展名
  39. $ext = pathinfo($name)['extension'];
  40. if (in_array($ext, $allow)){
  41. // 如果上传方式合法,且是允许的类型,则可以移动到指定的目录中了
  42. $path = 'uploads/';
  43. // 为了防止同名覆盖,应该给目标文件名重命名
  44. $dest = $path . md5($name) . '.' . $ext;
  45. // 将文件从临时目录移动到目标目录中
  46. if(move_uploaded_file($tmpName,$dest)){
  47. echo '<p>上传成功</p>';
  48. echo "<img src='$dest' width='200'>";
  49. } else{
  50. }
  51. } else{
  52. echo '<p>文件类型错误</p>';
  53. }
  54. } else{
  55. echo '<p>上传方式非法</p>';
  56. }
  57. }
  58. }
  59. ?>
  60. <!DOCTYPE html>
  61. <html lang="zh-CN">
  62. <head>
  63. <meta charset="UTF-8">
  64. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  65. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  66. <title>支持文件上传的表单, $_FILES</title>
  67. </head>
  68. <body>
  69. <!--
  70. 1. method: POST
  71. 2. ecntype: multipart/form-data
  72. -->
  73. <form action="" method="POST" enctype="multipart/form-data">
  74. <fieldset>
  75. <legend>单文件上传</legend>
  76. <!-- name="my_pic": 给服务器编程语言用的变量名,$_FILES -->
  77. <!-- <input type="hidden" name="MAX_FILE_SIZE" value="800000"> -->
  78. <input type="file" name="my_pic">
  79. <button>上传</button>
  80. </fieldset>
  81. </form>
  82. </body>
  83. </html>

多文件上传-1:逐个上传

  1. <?php
  2. // $_FILES
  3. printf('<pre>%s</pre>', print_r($_FILES, true));
  4. // foreach
  5. foreach($_FILES as $file){
  6. // 只要判断$file['error'] ===0 表示上传成功
  7. if($file['error']===0){
  8. // 暂不加密目标文件名
  9. $dest = 'uploads/' . $file['name'];
  10. // 移动到目标目录中
  11. move_uploaded_file($file['tmp_name'], $dest);
  12. // 预览
  13. echo "<img src= '$dest' width='200'>";
  14. }
  15. }
  16. ?>
  17. <!DOCTYPE html>
  18. <html lang="zh-CN">
  19. <head>
  20. <meta charset="UTF-8">
  21. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  22. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  23. <title>多文件上传-1</title>
  24. </head>
  25. <body>
  26. <form action="" method="POST" enctype="multipart/form-data">
  27. <fieldset>
  28. <legend>多文件上传-1:逐个上传</legend>
  29. <input type="file" name="my_pic1">
  30. <input type="file" name="my_pic2">
  31. <input type="file" name="my_pic3">
  32. <button>上传</button>
  33. </fieldset>
  34. </form>
  35. </body>
  36. </html>

多文件上传-2:逐个上传

  1. <?php
  2. // $_FILES
  3. printf('<pre>%s</pre>', print_r($_FILES, true));
  4. if(isset($_FILES['my_pic'])){
  5. // foreach
  6. foreach($_FILES['my_pic']['error'] as $key=>$error){
  7. // 0 => UPLOAD_ERR_OK
  8. if($error === UPLOAD_ERR_OK){
  9. // 临时文件名
  10. $tmpName =$_FILES['my_pic']['tmp_name'][$key];
  11. // 原始文件名
  12. $Name =$_FILES['my_pic']['name'][$key];
  13. // 暂不加密目标文件名
  14. $dest = 'uploads/' . $name;
  15. // 移动到目标目录中
  16. move_uploaded_file($tmpName, $dest);
  17. // 预览
  18. echo "<img src= '$dest' width='200'>";
  19. }
  20. }
  21. }
  22. ?>
  23. <!DOCTYPE html>
  24. <html lang="zh-CN">
  25. <head>
  26. <meta charset="UTF-8">
  27. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  28. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  29. <title>多文件上传-2</title>
  30. </head>
  31. <body>
  32. <form action="" method="POST" enctype="multipart/form-data">
  33. <fieldset>
  34. <legend>多文件上传-2:逐个上传</legend>
  35. <input type="file" name="my_pic[]">
  36. <input type="file" name="my_pic[]">
  37. <input type="file" name="my_pic[]">
  38. <button>上传</button>
  39. </fieldset>
  40. </form>
  41. </body>
  42. </html>

多文件上传-3:批量上传

  1. <?php
  2. // $_FILES
  3. printf('<pre>%s</pre>', print_r($_FILES, true));
  4. if(isset($_FILES['my_pic'])){
  5. // foreach
  6. foreach($_FILES['my_pic']['error'] as $key=>$error){
  7. // 0 => UPLOAD_ERR_OK
  8. if($error === UPLOAD_ERR_OK){
  9. // 临时文件名
  10. $tmpName =$_FILES['my_pic']['tmp_name'][$key];
  11. // 原始文件名
  12. $Name =$_FILES['my_pic']['name'][$key];
  13. // 暂不加密目标文件名
  14. $dest = 'uploads/' . $name;
  15. // 移动到目标目录中
  16. move_uploaded_file($tmpName, $dest);
  17. // 预览
  18. echo "<img src= '$dest' width='200'>";
  19. }
  20. }
  21. }
  22. ?>
  23. <!DOCTYPE html>
  24. <html lang="zh-CN">
  25. <head>
  26. <meta charset="UTF-8">
  27. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  28. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  29. <title>多文件上传-3</title>
  30. </head>
  31. <body>
  32. <form action="" method="POST" enctype="multipart/form-data">
  33. <fieldset>
  34. <legend>多文件上传-3:批量上传</legend>
  35. <input type="file" name="my_pic[]" multiple>
  36. <button>上传</button>
  37. </fieldset>
  38. </form>
  39. </body>
  40. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议