ajax ajaxFileUpload 文件(图片)上传

query 验证图片的格式代码如下:
<script type="text/javascript">
        function img() {
            var str = $("#fileName").val();
            var pos = str.lastIndexOf(".");
            var lastname = str.substring(pos, str.length);
            if (lastname.toLowerCase() != ".jpg" && lastname.toLowerCase() != ".jpeg" && lastname.toLowerCase() != ".gif" && lastname.toLowerCase() != ".bmp" && lastname.toLowerCase() != ".png") {
                alert("您上传的文件类型为" + lastname + ",图片必须为.jpg,.jpeg,.gif,.bmp,.png类型")
                return false;
            }
            else {
                return true;
            }
        }
    </script>

注意 :要是验证大小的话,我建议 还是去后台验证吧。前台还要判断浏览器的种类 ,版本 。况且还有些属性浏览器不支持。

 <input type="file" name="fileToUpload" id="fileToUpload" οnchange="upload()"/>

注意 :使用jquery的ajaxFileUpload 上传 是要 使用name  和  id 属性的;

首先看看js 前台代码怎么实现:
<script type="text/javascript">
function upload() {
        //alert($('#vfile').val());
        //if(__.checkFile()==false) return;
        $.({
             url:'/application/checkPic.do', //需要链接到服务器地址
             fileElementId:'fileToUpload',                        //文件选择框的id属性
             dataType: 'text',                                     //服务器返回的格式,可以是json
             success: function (data, status){            //相当于java中try语句块的用法
                 var data=eval("("+data+")");//转换为json对象
                 if(data.result =="1"){
                     $('#photo').val(data.obj);
                     $("#img").attr("src", '<%=basePath %>' + data.obj);
                     $("#img").show();
                     return true;
                 }
                 if(data.result =="2"){
                     $.messager.alert('系统提示','图片必须为jpg、jpeg、gif、bmp、png类型!');
                    $('#fileToUpload').val('');
                    return false;
                 }
                 if(data.result =="3"){
                     $.messager.alert('系统提示','图片过大,不能超过1M!');
                     $('#fileToUpload').val('');
                      return false;
                  }
             },
             error: function (data, status, e)            //相当于java中catch语句块的用法
             {
             }
         });
    },
</script>

controller 源码奉上:
    /**
     *
     * 描述 保存上传文件
     * @author guochenglin
     * @createDate 2014-8-28
     * @param path
     * @param file
     * @return
     * @throws IllegalStateException
     * @throws IOException
     */
    public static Object[] saveUploadFile(String path, MultipartFile file)
            throws IllegalStateException, IOException {
        Object[] obj = new Object[2];
//        if (file == null)
//            return "";
        String flag = "";
        String fileName = file.getOriginalFilename();
      //扩展名
        String suffixName = fileName.substring(fileName.lastIndexOf("."),fileName.length());
        String name = System.currentTimeMillis()+suffixName;
        //图片大小
        Long fileSize = file.getSize();
        File targetFile = new File(path, name);
         //验证格式
          List<String> fileTypes = new ArrayList<String>();   
          fileTypes.add(".jpg");   
          fileTypes.add(".jpeg");   
          fileTypes.add(".bmp");   
          fileTypes.add(".gif");
          fileTypes.add(".png");
          if(fileTypes.contains(suffixName.toLowerCase()) && fileSize <=1024*1024 ){  
              if(!targetFile.exists())
                 targetFile.mkdirs();  
                 file.transferTo(targetFile);
                 flag="1";
          }else if(!fileTypes.contains(suffixName.toLowerCase())){
              flag="2";
          }else if(fileSize>1024*1024){
              flag="3";
          }
          obj[0] =flag;
          obj[1] =name;
        return obj;
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值