1. 1.jsp页面
  1. <td width="20%" class="pn-flabel pn-flabel-h"></td>
  2. <td width="80%" class="pn-fcontent">
  3. <img width="100" height="100" id="allImgUrl"/>
  4. <input type="hidden" name="imgUrl" id="path"/>
  5. <input type="file" onchange="uploadPic()" name="pic"/>
  6. </td<script type="text/javascript"//上传function uploadPic(){
  1. //定义参数
  2. var options = {
  3. url : "/upload/uploadPic.do",
  4. dataType : "json",
  5. type : "post",
  6. success : function(data){
  7. //回调 二个路径
  8. //url
  9. //path
  10. $("#allImgUrl").attr("src",data.url);
  11. $("#path").val(data.path);
  12. }
  13. };
  14. //jquery.form使用方式 通常情况下,我们直接通过form提交的话,提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们比不希望提交表单后页面跳转,
    那么,我们就可以使用ajaxSubmit(obj)来提交数据。
  15. $("#jvForm").ajaxSubmit(options);
  16. }
  17. </script>

 2.修改springmvc.xml配置文件

在配置文件中添加如下代码:

  1. <!--配置文件上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  2. <property name="maxUploadSize" value="1048576"> </property> <!-- 大小为1M 1*1024*1024 -->
  3. </bean>
  1. 3.编写controller
    @Controller
  2. public class UploadController {
  3. //上传图片
  4. @RequestMapping(value = "/upload/uploadPic.do")
  5. public void uploadPic(@RequestParam(required = false) MultipartFile pic,HttpServletResponse response){
  6. //扩展名
  7. String ext = FilenameUtils.getExtension(pic.getOriginalFilename());
  8. //图片名称生成策略
  9. DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
  10. //图片名称一部分
  11. String format = df.format(new Date());
  12. //随机三位数
  13. Random r = new Random();
  14. // n 1000 0-999 99
  15. for(int i=0 ; i<3 ;i++){
  16. format += r.nextInt(10);
  17. }
  18. //实例化一个Jersey
  19. Client client = new Client();
  20. //保存数据库
  21. String path = "upload/" + format + "." + ext;
  22. //另一台服务器的请求路径是?
  23. String url = Constants.IMAGE_URL + path;
  24. //设置请求路径
  25. WebResource resource = client.resource(url);
  26. //发送开始 POST GET PUT
  27. try {
  28. resource.put(String.class, pic.getBytes());
  29. } catch (IOException e) {
  30. // TODO Auto-generated catch block
  31. e.printStackTrace();
  32. }
  33. //返回二个路径
  34. JSONObject jo = new JSONObject();
  35. jo.put("url", url);
  36. jo.put("path",path);
  37. ResponseUtils.renderJson(response, jo.toString());
  38. }
  39. }

  4.编写ResponseUtils工具类,用来异步发送

  1. public class ResponUtils {
  2. public static void render(HttpServletResponse response,String contentType,String text){
  3. response.setContentType(contentType);
  4. try {
  5. response.getWriter().write(text);
  6. } catch (IOException e) {
  7. // TODO Auto-generated catch block
  8. e.printStackTrace();
  9. }
  10. }
  11. //发送的是Json
  12. public static void renderJson(HttpServletResponse response,String text){
  13. render(response,"application/json;charset=UTF-8",text);
  14. }
  15. //发送xml
  16. public static void renderXml(HttpServletResponse response,String text){
  17. render(response,"text/xml;charset=UTF-8",text);
  18. }
  19. //发送text
  20. public static void renderText(HttpServletResponse response,String text){
  21. render(response,"text/plain;charset=UTF-8",text);
  22. }
  23. }

  

Ajax图片异步上传并回显的更多相关文章

  1. springboot+thymeleaf 实现图片文件上传及回显

    1. 创建一个springboot工程, 在此就不多说了(目录结构). 2. 写一个HTML页面 <!DOCTYPE html> <html lang="en" ...

  2. 图片上传并回显Ajax异步篇

    图片上传并回显Ajax异步篇 图片如何无刷新的上传到服务器呢?继前两篇文章后,我们来实战一下如何无刷新的异步上传图片,我们还是先看一下效果 在实战前呢,我们需要做些准备工作.比如说,了解一下FormD ...

  3. 文件的上传(表单上传和ajax文件异步上传)

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...

  4. 普通文件的上传(表单上传和ajax文件异步上传)

    一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...

  5. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  6. SpringBoot系列——附件管理:整合业务表单实现上传、回显、下载

    前言 日常开发中,大多数项目都会涉及到附件上传.回显.下载等功能,本文记录封装通用附件管理模块,并与业务模块进行整合实现上传.回显.下载 我们之前已经对文件上传下载有过记录,传送门:基于"f ...

  7. MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的!

    MVC 5.0(or5.0↓)  Ajax.BeginForm 异步上传附件问题,答案是不能的! (请注意我这里说的异步!) 来看一下下面这段一步提交file的代码 //前台 .cshtml 文件 & ...

  8. 2.0 vue2+tinymce实现图片上传与回显

    1.效果 2.配置 2.1 在init中添加图片上传函数 // 图片上传 images_upload_handler: (blobInfo, success, failure) => { // ...

  9. bootstrap fileinput控件 + django后台上传、回显简单使用

    一.控件下载:https://github.com/kartik-v/bootstrap-fileinput/ 官网:http://plugins.krajee.com/file-input 需要引入 ...

随机推荐

  1. ELK学习博客

    ELK实时日志分析平台环境部署--完整记录 https://www.cnblogs.com/kevingrace/p/5919021.html

  2. 【其他】SAS key 获得办法【转载】

    小弟偶然得到了一个利用google得到SID的方法,经本人测试(9.4 64位)得到的SID可以用到2015年12月,从此之后再也不用改时间了.为了让更多的人看见,设定了回复可见.所有内容免费.路过的 ...

  3. py库: xlwt 、xlrd (写读EXCEL文件)

    写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...

  4. python学习笔记_week9

    一.paramiko模块 SSHClient,用于连接远程服务器并执行基本命令 基于用户名密码连接: ssh执行命令:stdin,stdout,sterr:标准输入.输出.错误 import para ...

  5. PostgreSQL (简称gp)小集

    1. SQLyog & Navicat SQLyog可以管理 MySQL Navicat 可以管理 SQL Server,MySQL,PostgreSQL,SQLite 2. 日期及加减 no ...

  6. Jenkins 简单配置

      安装就不说了, 因为安装实在是很简单的. Jenkins基础配置 配置jdk 和maven 进入Global Tool Configuration, 配置JDK: 一般不要选择自动安装, 否则下载 ...

  7. 设置SVN服务器

    1 下载svn服务器,参考地址 http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 下载地址: http://subv ...

  8. HTML5 Canvas 小例子 旋转的时钟

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. java中常用工具类

    目录 一. org.apache.commons.io.IOUtils 二. org.apache.commons.io.FileUtils 三. org.apache.commons.lang.St ...

  10. eclipse 使用Maven deploy命令部署构建到Nexus

    转载于:http://blog.csdn.net/jun55xiu/article/details/43051627 1  应用场景:SYS-UTIL(系统工具)项目部署.构建成JAR包(SYS-UT ...