/* * 图片上传 */

@RequestMapping("/uploadFile") @ResponseBody public String uploadFile(@RequestParam(value = "imageAddr", required = false)String imageAddr,@RequestParam(value = "genre", required = false)String genre,@RequestParam(value = "uploadFile", required = false) MultipartFile uploadFile,HttpServletRequest request, HttpServletResponse response){ MapresultMap=new HashMap();

      //获取当前时间 File.separator等同于/或者\\

        String fileFolder = File.separator + DateUtil.getYear(new Date())

        + File.separator +  DateUtil.getMonth(new Date()) + File.separator

        + DateUtil.getDay(new Date());

        String fileName =uploadFile.getOriginalFilename();//获取文件上传的名称

        String newFileName="";

        //获取照片类型  人员/车辆

    System.out.println(fileName);
  
    System.out.println(genre+imageAddr); try { String uploadPath="";//图片上传的目录 InputStream in = this.getClass().getResourceAsStream("/conf.properties"); Properties props = new Properties(); InputStreamReader inputStreamReader = new InputStreamReader(in, "UTF-8"); props.load(inputStreamReader); if("renyuan".equals(genre)) { uploadPath = props.getProperty("renyuan_Upload_path")+fileFolder; }else if ("cheliang".equals(genre)) { uploadPath = props.getProperty("cheliang_Upload_path")+fileFolder; } //重新命名 if(null!=fileName){ newFileName=UUID.randomUUID ()+fileName.substring (fileName.lastIndexOf (".")); } File files=new File(uploadPath,newFileName); if(!files.exists ()){ files.mkdirs (); } uploadFile.transferTo (files); resultMap.put("fileAdress",fileFolder+File.separator+newFileName); resultMap.put("imageAddr",imageAddr); resultMap.put("uploadFlag",true); } catch (Exception e) { resultMap.put("uploadFlag",false); //记日志 } String json=JSONObject.toJSONString(resultMap).toString(); writeJson(json,response); return null; } /* * 写入数据 */ private void writeJson(String json, HttpServletResponse response) { response.setContentType("application/json;charset=UTF-8"); PrintWriter out = null; try { out = response.getWriter(); out.print(json); out.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (null != out) { out.close(); } } }

上面是上传图片的控制层

下面是上传图片的ajax提交

function upload(path) {

      var form = new FormData();

var xx =  $(":input[name='uploadName']").val();

      var ImageName = document.getElementsByName("uploadName")[0].value;

      var uploadName = ImageName.name;

      alert(ImageName);

          var genre=$(":input[name='genre']").val();

      var imageAddr=$(":input[name='imageAddr']").val();

      //追加图片类型  人员/车辆

      form.append(genre,genre);

      //追加回传照片地址

      form.append(imageAddr,imageAddr);

      form.append(uploadName,ImageName);

alert(path);

      $.ajax({ 

          type: "POST", 

          url:"uploadFile",

          contentType:'multipart/form-data',

          data:form,

          // 下面三个参数要指定,如果不指定,会报一个JQuery的错误

              cache: false,

              contentType: false,

              processData: false,

          async: false, 

          success: function(data) {

          console.log(data);

              if(data.uploadFlag==true){

              alert("上传成功");

console.log("地址"+data.imageAddr);

console.log("图片名"+data.fileAdress);

              alert(data.imageAddr);

              alert(data.fileAdress);

                    //往input框里传值

                  document.getElementById(data.imageAddr).value=data.fileAdress;

                  $("#ImgPr").attr("src",data.fileAdress);

              }else{

                  alert("上传出错");

              }

          } 

      });

}

多个form表单提交  

图片预览可以在网上很多素材  也可以用下面发的那个  也可以上传完成后拿回传的图片路径追加给img的src显示 

jQuery.fn

.extend({

uploadPreview : function(opts) {

var _self = this, _this = $(this);

opts = jQuery.extend({

Img : "ImgPr",

Width : 100,

Height : 100,

ImgType : [ "gif", "jpeg", "jpg", "bmp", "png" ],

Callback : function() {

}

}, opts || {});

_self.getObjectURL = function(file) {

var url = null;

if (window.createObjectURL != undefined) {

url = window.createObjectURL(file)

} else if (window.URL != undefined) {

url = window.URL.createObjectURL(file)

} else if (window.webkitURL != undefined) {

url = window.webkitURL.createObjectURL(file)

}

return url

};

_this

.change(function() {

if (this.value) {

if (!RegExp(

"\.(" + opts.ImgType.join("|")

+ ")$", "i").test(

this.value.toLowerCase())) {

alert("选择文件错误,图片类型必须是"

+ opts.ImgType.join(",")

+ "中的一种");

this.value = "";

return false

}

//高版本Jquey使用  if ($.support.leadingWhitespace)

if ($.support.leadingWhitespace) { //低版本jquery中使用$.browser.msie

console

.log(_self

.getObjectURL(this.files[0]));

try {

_this

.parent('div')

.find("." + opts.Img)

.attr(

'src',

_self

.getObjectURL(this.files[0]));

} catch (e) {

var src = "";

var obj = _this.parent('div')

.find("." + opts.Img);

var div = obj.parent("div")[0];

_self.select();

if (top != self) {

window.parent.document.body

.focus()

} else {

_self.blur()

}

src = document.selection

.createRange().text;

document.selection.empty();

obj.hide();

obj

.parent("div")

.css(

{

'filter' : 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',

'width' : opts.Width

+ 'px',

'height' : opts.Height

+ 'px'

});

div.filters

.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src

}

} else {

_this

.parent('div')

.find("." + opts.Img)

.attr(

'src',

_self

.getObjectURL(this.files[0]))

}

opts.Callback()

}

})

}

});

$(".up").click(function() {

$(this).uploadPreview({

Img : "ImgPr"

});

})

form表单的一个页面多个上传按钮实例的更多相关文章

  1. webuploader的一个页面多个上传按钮实例

    借鉴一位大佬的demo  附上他的github地址https://github.com/lishuqi 我把他的cxuploader.js改了不需要预览  直接上传图片后拿到回传地址给img标签显示图 ...

  2. Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  3. webuploader 百度上传,一个页面多个上传按钮

    需求:列表里每条数据需加文件上传 html: <div> <ul class="SR_wrap_pic"></ul> <button ty ...

  4. 【文件上传】文件上传的form表单提交方式和ajax异步上传方式对比

    一.html 表单代码 …… <input type="file" class="file_one" name="offenderExcelFi ...

  5. 提交form表单不刷新页面案列

    提交form表单不刷新页面其实很简单的,这里拿上传图片来举列,大家有什么其它的方法也欢迎留言告知与我 <form action="" method="post&qu ...

  6. form表单中只有一个input时,按回车键后表单自动提交(form表单的一个小坑)

    form中只有一个input按回车键表单会自动提交 在一个form表单中,若只有一个input,按回车键表单会自动提交,但是当表单中存在多个input时,按回车键不会执行任何操作,这是form表单的一 ...

  7. 用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮

    需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为 ...

  8. angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传

    step1:引入文件 引入Plupload *该SDK上传功能集于Plupload插件封装,所以需要下载Plupload; plupload.dev.js 引入qiniu.js为了简便,当时直接从官网 ...

  9. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

随机推荐

  1. Android ImageButton单击切换按钮图片效果

    正常状态的效果: 按钮按下的效果图片: 一.在java中为图片按钮增加触摸监听的函数来实现图片切换,代码如下: ImageButton btn = (ImageButton)findViewById( ...

  2. 千里之堤毁于蚁穴(慎用HD Wallets)

    转自:http://blog.sina.com.cn/s/blog_12ce70a430102vbu9.html 千里之堤毁于蚁穴(慎用HD Wallets) -- 随机系列谈之四 现在我们都该明白, ...

  3. 分分钟搞懂 HD 钱包

    转自:http://blog.sina.com.cn/s/blog_12ce70a430102v8c7.html 第一次看到 HD 这个词被用在比特币钱包中时,很容易就把它理解成硬件(Hardware ...

  4. Windows ->> FIX: “The security database on the server does not have a computer account for this workstation trust relationship”

    前几天在做AlwaysOn实验时遇到搭建活动目录域时某台已经加入AD的机器无法以域管理员账户登录的情况. 报错信息是:The security database on the server does ...

  5. windows远程桌面无法粘贴复制的解决方法

    案例一:未勾选剪贴板,进入 远程桌面连接选项“本地资源->本地设备和资源->剪贴板”中,勾选剪贴板. 案例二:已勾选剪贴板,但是无法粘贴复制,进入远程服务器,关闭[rdpclip.exe] ...

  6. Python3.x 安装Scrapy框架

    先判断pip是否已经安装 pip --version 确认已经安装后,使用pip安装库 pip3 install PackageName eg: pip3 install Scrapy 报错解决方案 ...

  7. msvcr100.dll丢失原因及解决方法

    msvcr100.dll为Visual Studio 2010的一个动态链接库,如果某程序是用它开发出来的,那么该程序的运行就有可能需要此动态链接库.有些程序直接将其打包到了安装目录,并注册,就不会出 ...

  8. Windows软件静默安装

    Install Software in A Slient Way 一般来说,不同的软件的封装类型都有固定的静默安装命令. 查看软件的封装类型 双击setup.exe,在弹出窗口的左上角单击,选择&qu ...

  9. Hyperledger Fabric 1.0 学习搭建 (二)--- 源码及镜像文件处理

    2.1下载Fabric源码下载Fabric源码是因为要用到源码中提到的列子和工具, 工具编译需要用到go语言环境, 因此需要把源码目录放到$GOPATH下. 通过1.3中go的安装配置, $GOPAT ...

  10. (五)多点触控之兼容ViewPager

    在上一篇文章中,自定义的ZoomImageView已经实现了自由缩放,自由移动以及双击放大与缩小的功能.已经可以投入使用这个控件了.下面我们就在ViewPager中使用这个控件.如果你还没读过上一篇文 ...