异步上传文件

 这里我写的有点重复了 不太简洁 整体可以再优化

 

formData 是DOM对象 不是jquery对象

 

var formData = new FormData($("#file")[0]); 对象.append() 可以追加表单内所有信息上传服务器

 

Jquery的对象是 不能处理file

 

serialize() 序列化表单,用于 Ajax 请求,直接获取表单内数据传送服务器 ,$("form").serialize()

 

 1 $("#file").change(function(e){                      
 2     var animateimg = $(this).val();                 //获取上传的图片名 带//
 3     var imgarr=animateimg.split('\\');                 //分割以逗号                     结果  (C:\fakepath\6.jpg)
 4     var myimg=imgarr[imgarr.length-1];                 //去掉 // 获取图片名                 6.jpg        
 5     var houzui = myimg.lastIndexOf('.');             //获取 . 出现的位置                  1
 6 
 7
 8     var lastName = myimg.substring(houzui).toUpperCase();                         // 也可以    (.JPG) 随便 不转也行,不转 下面也要用小写
 9                               
10     var file = $('#file').get(0).files[0];                 //获取上传的文件
11     var fileSize = file.size;                           //获取上传的文件大小
12     var maxSize = 1048576;                              //最大1MB
13 
14     if(lastName !='.PNG'&& lastName !='.JPG' && lastName !='.JPEG'){
15         parent.layer.msg('文件类型错误,请上传图片类型');
16         return false;
17     }else if(parseInt(fileSize) >= parseInt(maxSize)){
18         parent.layer.msg('上传的文件不能超过1MB');               // 需要layer的js
19         // layer.msg('<p style="color:black">文件上传仅支持 "jpg"和"png"格式</p>', {icon: 5,time: 2000}); 提示框+背景+表情
20         return false;
21     }else{
22         var fileObj = $('#file').get(0).files[0];        23         var formData = new FormData();
24         // 存入文件对象
25         formData.append('file',fileObj);     
26         formData.append('name',$("#name").val());            // 也可以用jquery 获取其他值 追加到后面 一起传过去.  
27         console.log(fileObj);
28 
29         $.ajax({
30             url: "__URL__/setImg",
31             type: 'POST',
32             data: formData,
33             dataType: 'json',
34             async: false,
35             cache: false,
36             contentType: false,
37             processData: false,
38             success: function (response) {
39                 if (response.status == 1) {
40                      alert(response.msg);
41                     window.location.href="<?php echo U('index');?>";
42                 }else if(response.status == 2){
43                     alert(response.msg);
44                 }else {
45                     alert(response.msg);
46                 }
47             },
48         })
49     }
50 });        

php   

setImg方法返回格式:

 echo json_encode(array('status'=>1,'msg'=>"上传成功",'pic'=>$newName)); 

转载于:https://www.cnblogs.com/G921123/p/10167727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值