Ajax图片异步上传并回显
- 1.jsp页面
- <td width="20%" class="pn-flabel pn-flabel-h"></td>
- <td width="80%" class="pn-fcontent">
- <img width="100" height="100" id="allImgUrl"/>
- <input type="hidden" name="imgUrl" id="path"/>
- <input type="file" onchange="uploadPic()" name="pic"/>
- </td<script type="text/javascript"//上传function uploadPic(){
- //定义参数
- var options = {
- url : "/upload/uploadPic.do",
- dataType : "json",
- type : "post",
- success : function(data){
- //回调 二个路径
- //url
- //path
- $("#allImgUrl").attr("src",data.url);
- $("#path").val(data.path);
- }
- };
- //jquery.form使用方式 通常情况下,我们直接通过form提交的话,提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们比不希望提交表单后页面跳转,
那么,我们就可以使用ajaxSubmit(obj)来提交数据。- $("#jvForm").ajaxSubmit(options);
- }
- </script>
2.修改springmvc.xml配置文件
在配置文件中添加如下代码:
- <!--配置文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">- <property name="maxUploadSize" value="1048576"> </property> <!-- 大小为1M 1*1024*1024 -->
- </bean>
- 3.编写controller层
@Controller- public class UploadController {
- //上传图片
- @RequestMapping(value = "/upload/uploadPic.do")
- public void uploadPic(@RequestParam(required = false) MultipartFile pic,HttpServletResponse response){
- //扩展名
- String ext = FilenameUtils.getExtension(pic.getOriginalFilename());
- //图片名称生成策略
- DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- //图片名称一部分
- String format = df.format(new Date());
- //随机三位数
- Random r = new Random();
- // n 1000 0-999 99
- for(int i=0 ; i<3 ;i++){
- format += r.nextInt(10);
- }
- //实例化一个Jersey
- Client client = new Client();
- //保存数据库
- String path = "upload/" + format + "." + ext;
- //另一台服务器的请求路径是?
- String url = Constants.IMAGE_URL + path;
- //设置请求路径
- WebResource resource = client.resource(url);
- //发送开始 POST GET PUT
- try {
- resource.put(String.class, pic.getBytes());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //返回二个路径
- JSONObject jo = new JSONObject();
- jo.put("url", url);
- jo.put("path",path);
- ResponseUtils.renderJson(response, jo.toString());
- }
- }
4.编写ResponseUtils工具类,用来异步发送
- public class ResponUtils {
- public static void render(HttpServletResponse response,String contentType,String text){
- response.setContentType(contentType);
- try {
- response.getWriter().write(text);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //发送的是Json
- public static void renderJson(HttpServletResponse response,String text){
- render(response,"application/json;charset=UTF-8",text);
- }
- //发送xml
- public static void renderXml(HttpServletResponse response,String text){
- render(response,"text/xml;charset=UTF-8",text);
- }
- //发送text
- public static void renderText(HttpServletResponse response,String text){
- render(response,"text/plain;charset=UTF-8",text);
- }
- }
Ajax图片异步上传并回显的更多相关文章
- springboot+thymeleaf 实现图片文件上传及回显
1. 创建一个springboot工程, 在此就不多说了(目录结构). 2. 写一个HTML页面 <!DOCTYPE html> <html lang="en" ...
- 图片上传并回显Ajax异步篇
图片上传并回显Ajax异步篇 图片如何无刷新的上传到服务器呢?继前两篇文章后,我们来实战一下如何无刷新的异步上传图片,我们还是先看一下效果 在实战前呢,我们需要做些准备工作.比如说,了解一下FormD ...
- 文件的上传(表单上传和ajax文件异步上传)
项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...
- 普通文件的上传(表单上传和ajax文件异步上传)
一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...
- 文件的上传(1)(表单上传和ajax文件异步上传)
文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...
- SpringBoot系列——附件管理:整合业务表单实现上传、回显、下载
前言 日常开发中,大多数项目都会涉及到附件上传.回显.下载等功能,本文记录封装通用附件管理模块,并与业务模块进行整合实现上传.回显.下载 我们之前已经对文件上传下载有过记录,传送门:基于"f ...
- MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的!
MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的! (请注意我这里说的异步!) 来看一下下面这段一步提交file的代码 //前台 .cshtml 文件 & ...
- 2.0 vue2+tinymce实现图片上传与回显
1.效果 2.配置 2.1 在init中添加图片上传函数 // 图片上传 images_upload_handler: (blobInfo, success, failure) => { // ...
- bootstrap fileinput控件 + django后台上传、回显简单使用
一.控件下载:https://github.com/kartik-v/bootstrap-fileinput/ 官网:http://plugins.krajee.com/file-input 需要引入 ...
随机推荐
- ELK学习博客
ELK实时日志分析平台环境部署--完整记录 https://www.cnblogs.com/kevingrace/p/5919021.html
- 【其他】SAS key 获得办法【转载】
小弟偶然得到了一个利用google得到SID的方法,经本人测试(9.4 64位)得到的SID可以用到2015年12月,从此之后再也不用改时间了.为了让更多的人看见,设定了回复可见.所有内容免费.路过的 ...
- py库: xlwt 、xlrd (写读EXCEL文件)
写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...
- python学习笔记_week9
一.paramiko模块 SSHClient,用于连接远程服务器并执行基本命令 基于用户名密码连接: ssh执行命令:stdin,stdout,sterr:标准输入.输出.错误 import para ...
- PostgreSQL (简称gp)小集
1. SQLyog & Navicat SQLyog可以管理 MySQL Navicat 可以管理 SQL Server,MySQL,PostgreSQL,SQLite 2. 日期及加减 no ...
- Jenkins 简单配置
安装就不说了, 因为安装实在是很简单的. Jenkins基础配置 配置jdk 和maven 进入Global Tool Configuration, 配置JDK: 一般不要选择自动安装, 否则下载 ...
- 设置SVN服务器
1 下载svn服务器,参考地址 http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 下载地址: http://subv ...
- HTML5 Canvas 小例子 旋转的时钟
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- java中常用工具类
目录 一. org.apache.commons.io.IOUtils 二. org.apache.commons.io.FileUtils 三. org.apache.commons.lang.St ...
- eclipse 使用Maven deploy命令部署构建到Nexus
转载于:http://blog.csdn.net/jun55xiu/article/details/43051627 1 应用场景:SYS-UTIL(系统工具)项目部署.构建成JAR包(SYS-UT ...