前言

  • 做项目时,遇到表单中图像需要跟表单一起提交,这样会造成后台没办法接收到图片。后面上网调查后,明白表单提交时是默认application/x-www-form-urlencoded格式,只接受键值对。所以以下例子采用FormData格式异步提交表单,因为formData格式可以接收文件格式。

具体流程

  • 1.引入maven
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>
  • 2.在全局配置文件中引入相关配置
    <!--multipart处理类--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="10485760"/><property name="maxInMemorySize" value="4096"/></bean>3, 153, 153);">1

2345

  • 3.定义jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
<h1>使用formData形式上传文件</h1><form id="uploadForm" method="post" action="/upload.ajax" ><input type="file" id="avatar" name="avatar" onchange="previewImage('preview',this)" ><img id="preview"><button id="submit" type="button">提交</button></form>
</body>
</html>
<script src="/media/js/jquery-1.10.1.min.js"></script>
<script type="text/javascript">//检验文件格式并预览function previewImage(preImageId, imageFile) {var pattern = /(\.*.jpg$)|(\.*.png$)|(\.*.jpeg$)|(\.*.gif$)|(\.*.bmp$)/;if (!pattern.test(imageFile.value)) {alert("系统仅支持jpg/jpeg/png/gif/bmp格式的照片!");imageFile.focus();$(imageFile).val("");return false;} else {var path;if (document.all)//IE{imageFile.select();path = document.selection.createRange().text;}else//FF{path = URL.createObjectURL(imageFile.files[0]);}$('#' + preImageId).attr('src', path);}}$('#submit').on('click',function () {var formData = new FormData($( "#uploadForm" )[0]);console.log(formData);$.ajax({type: 'POST',url: '/upload.ajax',data: formData,contentType: false,processData: false,success: function (result) {console.log(result);},});});
</script>
  • 4.后台采用MultiPartFile接收文件
@RequestMapping("upload.ajax")@ResponseBodypublic String upload(MultipartFile avatar){//处理avatar逻辑return "success";}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

后语

  • 该实现并不难,主要了解表单提交格式和相关实现即可。希望可以帮到相关人员。

转载于:https://www.cnblogs.com/jpfss/p/8960840.html

使用FormData格式上传图像并预览图片相关推荐

  1. 2016/4/19 ①单个文件上传 ②上传图片后 预览图片

    1,f1.php <!DOCTYPE html> <htmllang="en"> <head><metacharset="UTF ...

  2. 在BAE搭建的Django中实现图片上传并用jquery预览图片

    在BAE上搭建好了django,如何实现图片上传并预览呢? 想要实现图片上传并不难,但是想看到刚上传的图片,就得在服务器返回上传后图片的url.可是返回数据的话,网页就会重定向.因此想要在上传页面预览 ...

  3. java实现文件上传预览_jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

  4. JavaScript 实现图片上传前本地预览

    JavaScript 实现图片上传前本地预览 图片上传前预览,应该算是一个普遍的需求,很多时候可能选中的图片并不是想要的那张,所以需要上传前预览下. JS(浏览器中)是一门特殊的语言,它没有直接读写磁 ...

  5. vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件

    vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件 效果如图 直接看代码吧 template部分 <div class="file-upload&q ...

  6. html上传头像及预览,js实现头像上传并且可预览提交

    在用户注册账号或者修改资料的时候会需要用户在本地选择一张图片作为头像,并同时预览, 常见的思路有两种:一是将图片上传至服务器的临时文件夹中,并返回该图片的url,然后渲染在html页面:另一种思路是, ...

  7. struts上传word和excel文件到oracle,Struts文件上传,下载,重传,预览

    [Struts2]☆★之文件上传,下载,重传,预览 今日群里一兄弟问我能否给一份struts文件上传下载的例子,因为自己项目比较紧所以想在网上找 些源码给他,但是纵观全网,写的都不是太全,这让新手使用 ...

  8. 微信小程序云开发实现上传文件和预览下载文件

    微信小程序云开发实现上传文件和预览下载文件 一.前言 目前微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的p ...

  9. PHP上传文件并预览

    达到上传文件并预览效果主要是一下代码: <h4>文件信息</h4> <?php if ($_SERVER["REQUEST_METHOD"] == & ...

最新文章

  1. C#中虚函数,抽象,接口的简单说明
  2. AES(Advanced Encryption Standard) Intrinsics各函数介绍
  3. python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
  4. 【微信小程序】wx:if
  5. zoj 1091 Knight Moves
  6. MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析
  7. JPA、Hibernate、Springdata JPA
  8. wsgiserver python 漏洞_python-简单测试wsgi
  9. 前端页面——Cookie与Session有什么差别
  10. 【今日免费】下载19880元大数据开发从零基础到全链路全套教程(源码+视频)...
  11. SpringBoot 系列
  12. 开源练习linux网络编程,如何学习Linux网络编程
  13. 股票python量化交易014-计算收益率
  14. 前端代码规范(依据腾讯团队前端代码规范整理与补充)
  15. 计算机视觉-图像的SIFT特征(尺度空间)
  16. 青岛新媒体运营教程:短视频没脚本怎么行,镜头脚本模板直接套用
  17. pdf怎么转换成ppt?可以试试这三个方法
  18. H60-RS232自动售货机主板规格书
  19. ElasticSearch练习二:聚合语法学习(aggs、bucket、metric、hitogram、date hitogram)
  20. 虚拟机命令里面的光标不动了怎么办_专治VMware各种不服之虚拟机开机黑屏、蓝屏...

热门文章

  1. 主从模式的数据库搭建(主从复制)
  2. 树莓派开机连接桌面的两种方式
  3. 朋友圈大数据:你的朋友圈出卖了你,大数据就是这么给力!!!
  4. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
  5. Centos7 连接wifi (PEAP)
  6. 投影矩阵(投影变换)解惑
  7. hive 修改cluster by算法_疯狂Hive之DML操作(四)
  8. Codevs 1066 引水入城 2010年NOIP全国联赛提高组
  9. 这几个拍图读字软件你见过吗?附赠使用方法
  10. 风拂树,月下杯影为伊留...