左右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 ...
 
随机推荐
- centos安装Chromium
			
1. Change root user Shell su - ## OR ## sudo -i 0 1 2 3 4 su - ## OR ## sudo -i 2a. Install NCSU ...
 - HDU 4454 - Stealing a Cake(三分)
			
我比较快速的想到了三分,但是我是从0到2*pi区间进行三分,并且漏了一种点到边距离的情况,一直WA了好几次 后来画了下图才发现,0到2*pi区间内是有两个极值的,每个半圆存在一个极值 以下是代码 #i ...
 - 蓝缘管理系统第二个版本号开源了。springMVC+springSecurity3.x+Mybaits3.x 系统
			
蓝缘管理系统第二个版本号开源了 继于 http://blog.csdn.net/mmm333zzz/article/details/16863543 版本号一.版本号二 对springMVC+spri ...
 - 用XAML做网页!!—终结篇
			
原文:用XAML做网页!!-终结篇 迄今为止的设计都很顺利,但这次就不得不接触我前面所说的非常糟糕的流文档了,但在此之前先来把标题弄好: <Border BorderBrush="#6 ...
 - JDK8在Java转让Javascript脚本引擎动态地定义和运行代码
			
import java.lang.*; import java.util.Arrays; import java.util.List; import javax.script.Invocable; i ...
 - windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11)
			
原文:windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11) 我们了解到在能在xaml中完成的设计,一般在隐藏文件中也可通过代码完成: ...
 - HDU 1171 Big Event in HDU (多重背包)
			
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
 - 即时编译和打包您的 Groovy 脚本(转)
			
在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class ...
 - 最小路径覆盖 hdu 1151 hdu 3335
			
Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
 - Code-Based Configuration (EF6 onwards)
			
https://msdn.microsoft.com/en-us/data/jj680699#Using