左右AjaxFileUpload背景返回Json治
项目中用到图片的无刷新上传,因此想到用ajaxUpLoadFile来解决。
第一步,先在上传图片的页面引入你下载到本地的ajaxfileupload.js文件。
文件下载地址:http://download.csdn.net/detail/up19910522/7471163
第二步,编写上传文件的js代码
function upLoadImage() {
var f = document.getElementById('fileToUpload').files[0];
alert(f.name); $.ajaxFileUpload({
fileElementId : 'fileToUpload',
url : '/ZHDM/chat/uploadImage',
dataType : 'text',
data : {},
async : true,
error : function(data) {
alert(data);
alert("网络异常,请重试");
},
success : function(message) {
alert(message);
}
})
}
第三步。后台接收文件并存储
@RequestMapping(value = "uploadImage", method = RequestMethod.POST)
public @ResponseBody
String uploadImage(HttpServletRequest request)
throws IllegalStateException, IOException {
System.out.println("进入控制层");
String pathString="";
User loginUser = (User) request.getSession().getAttribute("loginUser");
// 推断SESSION是否失效
if (loginUser == null || "".equals(loginUser)) {
return "250";
}
int loginUserId = loginUser.getUserId();
List<String> paths = new ArrayList<>();
// 设置上下文
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
// 检查form是否有enctype="multipart/form-data"
if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) {
// 由CommonsMultipartFile继承而来,拥有上面的方法.
MultipartFile file = multiRequest.getFile(iter.next());
System.out.println("file:" + file.getSize());
// 假设文件不为空,则进行处理
if (!file.isEmpty()) {
// 对图片文件名称进行处理。取得最后的6个字符。然后以"."为分隔符取得文件后缀
String originalFileName = file.getOriginalFilename(); // 取得后缀
String suffixString = originalFileName
.substring(originalFileName.lastIndexOf(".") + 1); // 取得IP地址
String ip = new CheckIPImpl().checkIpAddress(request); // 取得IP地址+时间戳 作为文件名称 防止文件名称反复
IPTimeStamp ipTimeStamp = new IPTimeStamp(ip);
String randomFileName = ipTimeStamp.getIPTimeRand(); // 设定文件名称称
String fileName = randomFileName + "." + suffixString; // 地址为d:\\fileupload\\license目录下
String path = "D:" + File.separator + "fileupload"
+ File.separator + "chat" + File.separator
+ fileName;
String targerpath = "D:" + File.separator + "fileupload"
+ File.separator + "chat" + File.separator + "m"
+ fileName;
File localFile = new File(path); try {
file.transferTo(localFile);
// 将图片名称和相对路径存到数据库中
paths.add("/pic/chat/" + fileName);
pathString = "pic/chat/" + fileName;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }
}
// pathString="cao";
return pathString;
}第四部,前台页面代码:
<div class="creatGroup ml50" id="addlicensephoto">
<h5>
<span class="pngIcon deleteIcon fr" onclick="HideUpLoadpic()"></span>上传证照
</h5>
<div class="crearCon searchMain">
<form id="uploadform" enctype="multipart/form-data" name="uploadform" method="post" onsubmit="return Checkuploadform()">
<ul class="cons clearfix">
<li class="clear"><input id="fileToUpload" type="file" size="45" name="fileToUpload" class="uploadinput" ></li>
</form>
</div>
</div>然后就能够上传文件了。
笔者这里顺道把后台返回给前台的json出错的问题攻克了。
就是将Ajax中的dataType : 'json',换成dataType : 'text',
版权声明:本文博主原创文章,博客,未经同意不得转载。
左右AjaxFileUpload背景返回Json治的更多相关文章
- spring mvc ajaxfileupload文件上传返回json下载问题
问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...
- jquery ajax调用返回json格式数据处理
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...
- WebApi返回Json格式字符串
WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...
- spring mvc返回json字符串的方式
spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json 优点:不需要自己再处理 步骤一:在spring- ...
- Mui.ajax请求服务器正确返回json数据格式
ajax: mui.ajax('http://server-name/login.php',{ data:{ username:'username', password:'password' }, d ...
- Spring MVC学习笔记——返回JSON对象
1.想要GET请求返回JSON对象,首先需要导入jackson-all-1.9.4.jar包 2.在控制器中添加不同的show()方法 //show()方法返回JSON对象 @RequestMappi ...
- Struts2返回json格式数据踩坑记录
事件起因 昨天提测修改冻结/解冻银行卡样式的功能,微姐测试过程中发现调用ajax请求耗时过长,今天来排查,发现浏览器请求/finance/ajax/freeze/ajaxGetShopLists时,对 ...
- Web API返回JSON数据
对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...
- web Api 返回json 的两种方式
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
随机推荐
- Learning Cocos2d-x for WP8(8)——动作Action
原文:Learning Cocos2d-x for WP8(8)--动作Action 游戏很大程度上是由动作画面支撑起来的. 动作分为两大类:瞬间动作和延时动作. 瞬间动作基本等同于设置节点的属性,延 ...
- httpcomponents-client-4.3.x DOC
Chapter 1. Fundamentals Prev Next Chapter 1. Fundamentals 1.1. Request execution The most essent ...
- 李林APUE之进程的封装
1.子进程是父进程的副本,获得父进程的数据空间/堆/栈,父子进程共享代码段.子进程从fork后開始运行.返回值=0表示子进程,由于子进程能够通过函数来获取父进程的ID,可是父进程无法知道子进程的ID. ...
- UVA 11490 - Just Another Problem(数论)
11490 - Just Another Problem option=com_onlinejudge&Itemid=8&page=show_problem&category= ...
- jQuery Fancybox插件说明
这里有jquery影像回放路径插件称为Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点例如以下: 1.能够支持图片.html文本.flash动画.ifr ...
- EF 分离实体
具体步骤: 新建测试项目:如图 其中Respository和Model层均为类库项目, 1.在Respository层添加ADO.NET实体数据模型, 2.复制Model.tt文件到Model层,这是 ...
- Python3.2官方文件翻译--课堂笔记和异常是阶级
6.7备注 有时喜欢Pasca在"录"和C中"数据体"的数据类型很实用.集合一些数据项. 一个空类定义能够清楚地显示: class Employee: pass ...
- Android开发工具综述,开发人员必备工具
安卓开发工具汇总.开发者必备.安卓开发过程中须要用到各种工具,作为一名安卓开发者,有木有感到亚历山大,那么多工具! 今天给大家汇总了一下安卓开发工具,安卓开发者必备利器. 1.Draw 9-Patch ...
- Trie图
AC自动机是KMP的多串形式,当文本串失配时,AC自动机的fail指针告诉我们应该跳到哪里去继续匹配(跳到当前匹配串的最长后缀去),所以AC自动机的状态是有限的 但是AC自动机具有不确定性, 比如要求 ...
- hihocoder第41周 骨牌覆盖(矩阵快速幂)
由于棋盘只有两行,所以如果第i列的骨牌竖着放,那么就转移为第1列到第i-1列骨牌有多少种摆法 如果第一行第i列骨牌横着放,那么第二行第i列也要横着放,那么就转移为了第1列到第i-2列骨牌有多少种方法 ...