赞
踩
点击文件选择图片,点击上传,一同传输的还有年月日表单信息,创建年月日文件夹,将图片保存,返回图片路径
html:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="0" />
- <title></title>
- <style>
-
- </style>
- <script src="./jquery-1.12.3.js"></script>
- </head>
- <body>
- <!-- 选择文件 -->
- <input type="file" id="file" name="myFile" multiple/>
- <!-- 提示 -->
- <div id="tip"></div>
- <!-- 上传 -->
- <input type="button" value="上传" id="sub"/>
- </body>
- <script>
- //点击上传按钮
- $('#sub').click(function(){
- var a = new FormData();//未指定form表单
- a.append('myFile', $('#file')[0].files[0]);//添加文件
- var fileMaxSize = 1024; //最大1M
- var fileSize=$('#file')[0].files[0].size//文件大小
- var size = fileSize / 1024;
- if(size > fileMaxSize){
- alert('图片大小不能超过1M')
- return
- }
- //添加其它表单信息
- a.append('year',2023);
- a.append('month','05');
- a.append('day','01');
- //请求
- $.ajax({
- url:"../php/api/unload.php",
- xhrFields:{
- withCredentials:true
- },
- type: "POST",
- cache: false,
- data: a,
- processData: false,
- contentType:false,
- async: true,
- success: function (result) {
- console.log(JSON.parse(result))
- }
- })
- });
- </script>
- </html>
php:
- <?php
- header("content-type:text/html;charset=utf-8");
- //初始化方法
- require ('../methods/ini_methods.php');
-
- //封装的方法
- require ('../methods/public_methods.php');
- require ('../methods/ini_class.php');
- //判断是否存在此文件夹
- if(!is_dir("../../../用户异常申请报告单文件夹2")){
- echo retJson(402,'用户异常申请报告单文件夹2不存在','');
- }
- $year=var_is_null2('post','year');//获取参数
- $month=var_is_null2('post','month');//获取参数
- $day=var_is_null2('post','day');//获取参数
- //如果是使用系统时间,则用下面的值
- // $year=getdate()['year'];
- // $month=getdate()['mon'];
- // $day=getdate()['mday'];
- //一个创建文件夹的方法,如果文件夹存在,返回true,如果不存在,则创建
- function mkdirs($dir, $mode = 0777){
- if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
- if (!mkdirs(dirname($dir), $mode)) return FALSE;
- return @mkdir($dir, $mode);
- }
- if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年")){
- echo retJson(402,'年份文件夹创建失败','');
- }
- if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年/".$month."月")){
- echo retJson(402,'月份文件夹创建失败','');
- }
- if(!mkdirs("../../../用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号")){
- echo retJson(402,'天文件夹创建失败','');
- }
-
- //获取上传的文件
- $filename=$_FILES['myFile']['name'];//上传的文件名字,myFile为约定键名,前端与后端要一致
- if($filename=='' || empty($filename)){
- echo retJson(402,'接收的文件为空','');
- exit;
- }
- $type_name=substr(strrchr($filename, '.'), 1);//获取文件名后缀
- //如果不是jpg或者png的后缀,则返回错误值
- if($type_name!='jpg' && $type_name!='png' && $type_name!='jpeg' ){
- echo retJson(402,'请上传jpg,png,jpeg格式的文件','');
- exit;
- }
- $type=$_FILES['myFile']['type'];//文件的 MIME 类型,例如"image/gif"
- $tmp_name=$_FILES['myFile']['tmp_name'];//文件地址,储存的临时文件名
- $size=$_FILES['myFile']['size'];//大小
- $error=$_FILES['myFile']['error'];//状态
- //保存于服务器的路径,文件名为时间戳+格式名
- $save_name=$_SERVER['DOCUMENT_ROOT']."/用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号/".iconv("UTF-8", "gbk",time().'.'.$type_name);
- move_uploaded_file($tmp_name, $save_name);//保存图片
- if ($error==0) {
- echo retJson(200,'上传成功!',"/用户异常申请报告单文件夹2/".$year."年/".$month."月/".$day."号/".iconv("UTF-8", "gbk",time().'.'.$type_name));
- }else{//这些报错在配置文件里修改
- switch ($error){
- case 1:
- echo "超过了上传文件的最大值,请上传2M以下文件";
- break;
- case 2:
- echo "上传文件过多,请一次上传20个及以下文件!";
- break;
- case 3:
- echo "文件并未完全上传,请再次尝试!";
- break;
- case 4:
- echo "未选择上传文件!";
- break;
- case 5:
- echo "上传文件为0";
- break;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。