当前位置:   article > 正文

php异步上传图片并创建文件夹保存_php 储存上传的图片

php 储存上传的图片

点击文件选择图片,点击上传,一同传输的还有年月日表单信息,创建年月日文件夹,将图片保存,返回图片路径

html:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  6. <meta http-equiv="Pragma" content="no-cache" />
  7. <meta http-equiv="Expires" content="0" />
  8. <title></title>
  9. <style>
  10. </style>
  11. <script src="./jquery-1.12.3.js"></script>
  12. </head>
  13. <body>
  14. <!-- 选择文件 -->
  15. <input type="file" id="file" name="myFile" multiple/>
  16. <!-- 提示 -->
  17. <div id="tip"></div>
  18. <!-- 上传 -->
  19. <input type="button" value="上传" id="sub"/>
  20. </body>
  21. <script>
  22. //点击上传按钮
  23. $('#sub').click(function(){
  24. var a = new FormData();//未指定form表单
  25. a.append('myFile', $('#file')[0].files[0]);//添加文件
  26. var fileMaxSize = 1024; //最大1M
  27. var fileSize=$('#file')[0].files[0].size//文件大小
  28. var size = fileSize / 1024;
  29. if(size > fileMaxSize){
  30. alert('图片大小不能超过1M')
  31. return
  32. }
  33. //添加其它表单信息
  34. a.append('year',2023);
  35. a.append('month','05');
  36. a.append('day','01');
  37. //请求
  38. $.ajax({
  39. url:"../php/api/unload.php",
  40. xhrFields:{
  41. withCredentials:true
  42. },
  43. type: "POST",
  44. cache: false,
  45. data: a,
  46. processData: false,
  47. contentType:false,
  48. async: true,
  49. success: function (result) {
  50. console.log(JSON.parse(result))
  51. }
  52. })
  53. });
  54. </script>
  55. </html>

 

 

php:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. //初始化方法
  4. require ('../methods/ini_methods.php');
  5. //封装的方法
  6. require ('../methods/public_methods.php');
  7. require ('../methods/ini_class.php');
  8. //判断是否存在此文件夹
  9. if(!is_dir("../../../用户异常申请报告单文件夹2")){
  10. echo retJson(402,'用户异常申请报告单文件夹2不存在','');
  11. }
  12. $year=var_is_null2('post','year');//获取参数
  13. $month=var_is_null2('post','month');//获取参数
  14. $day=var_is_null2('post','day');//获取参数
  15. //如果是使用系统时间,则用下面的值
  16. // $year=getdate()['year'];
  17. // $month=getdate()['mon'];
  18. // $day=getdate()['mday'];
  19. //一个创建文件夹的方法,如果文件夹存在,返回true,如果不存在,则创建
  20. function mkdirs($dir, $mode = 0777){
  21. if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
  22. if (!mkdirs(dirname($dir), $mode)) return FALSE;
  23. return @mkdir($dir, $mode);
  24. }
  25. if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年")){
  26. echo retJson(402,'年份文件夹创建失败','');
  27. }
  28. if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年/".$month."月")){
  29. echo retJson(402,'月份文件夹创建失败','');
  30. }
  31. if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号")){
  32. echo retJson(402,'天文件夹创建失败','');
  33. }
  34. //获取上传的文件
  35. $filename=$_FILES['myFile']['name'];//上传的文件名字,myFile为约定键名,前端与后端要一致
  36. if($filename=='' || empty($filename)){
  37. echo retJson(402,'接收的文件为空','');
  38. exit;
  39. }
  40. $type_name=substr(strrchr($filename, '.'), 1);//获取文件名后缀
  41. //如果不是jpg或者png的后缀,则返回错误值
  42. if($type_name!='jpg' && $type_name!='png' && $type_name!='jpeg' ){
  43. echo retJson(402,'请上传jpg,png,jpeg格式的文件','');
  44. exit;
  45. }
  46. $type=$_FILES['myFile']['type'];//文件的 MIME 类型,例如"image/gif"
  47. $tmp_name=$_FILES['myFile']['tmp_name'];//文件地址,储存的临时文件名
  48. $size=$_FILES['myFile']['size'];//大小
  49. $error=$_FILES['myFile']['error'];//状态
  50. //保存于服务器的路径,文件名为时间戳+格式名
  51. $save_name=$_SERVER['DOCUMENT_ROOT']."/用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号/".iconv("UTF-8", "gbk",time().'.'.$type_name);
  52. move_uploaded_file($tmp_name, $save_name);//保存图片
  53. if ($error==0) {
  54. echo retJson(200,'上传成功!',"/用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号/".iconv("UTF-8", "gbk",time().'.'.$type_name));
  55. }else{//这些报错在配置文件里修改
  56. switch ($error){
  57. case 1:
  58. echo "超过了上传文件的最大值,请上传2M以下文件";
  59. break;
  60. case 2:
  61. echo "上传文件过多,请一次上传20个及以下文件!";
  62. break;
  63. case 3:
  64. echo "文件并未完全上传,请再次尝试!";
  65. break;
  66. case 4:
  67. echo "未选择上传文件!";
  68. break;
  69. case 5:
  70. echo "上传文件为0";
  71. break;
  72. }
  73. }

 

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号