左右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 ...
随机推荐
- 阿尔贝我给我加i觉
http://www.huihui.cn/share/8192186 http://www.huihui.cn/share/8192178 http://www.huihui. ...
- Instruments的使用 逻辑查错,内存泄漏分析等工具集
原创文章,转载请注明 XCode 开发后期,要对代码进行改进和优化,查内存泄漏是其中一项重要工作,今天下午偷了点时间,把前段时间的代码稍微整理了一下,顺带用了下这个工具,还真发现了些问题.这里记录一下 ...
- C++ 在字符串中插入子串+推断字符串是否由空格组成
// Example3.cpp : 定义控制台应用程序的入口点. #include "StdAfx.h" #include <string> #include < ...
- POJ 2411
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 9614 Accepted: 5548 ...
- java基金会成立Set
1.设置 当向集合Set中添加对象时.首先集合计算要添加对象的hashcode,依据该值得到一个位置用来存放当前的对象,当在该位置没有一个对象存在的时候,集合set觉得该对象在集合中不存在,直接添加进 ...
- 《JavaScript设计模式与开发实践》读书笔记之单例模式
1.单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点 1.1 传统的单例模式 var Singleton=function(name){ this.name=name; } Single ...
- WPF命中测试示例(一)——坐标点命中测试
原文:WPF命中测试示例(一)--坐标点命中测试 命中测试也可被称为碰撞测试,在WPF中使用VisualTreeHelper.HitTest()方法实现,该方法用于获取给定的一个坐标点或几何形状内存在 ...
- 从零开始学Xamarin.Forms(一) 概述
原文:从零开始学Xamarin.Forms(一) 概述 Xamarin 读 "ˈzæmərin",是一个基于开源项目mono的能够使用C#开发的收费的跨平台(iOS.And ...
- poj 3101 Astronomy(分数的最小公倍数)
http://poj.org/problem? id=3101 大致题意:求n个运动周期不全然同样的天体在一条直线上的周期. 这题我是看解题报告写的,没想到选用參照物,用到了物理中的角速度什么的. 由 ...
- poj 3250 Bad Hair Day (单调栈)
Bad Hair Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14883 Accepted: 4940 Des ...