项目中用到图片的无刷新上传,因此想到用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治的更多相关文章

  1. spring mvc ajaxfileupload文件上传返回json下载问题

    问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...

  2. jquery ajax调用返回json格式数据处理

    Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...

  3. WebApi返回Json格式字符串

    WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...

  4. spring mvc返回json字符串的方式

    spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring- ...

  5. Mui.ajax请求服务器正确返回json数据格式

    ajax: mui.ajax('http://server-name/login.php',{ data:{ username:'username', password:'password' }, d ...

  6. Spring MVC学习笔记——返回JSON对象

    1.想要GET请求返回JSON对象,首先需要导入jackson-all-1.9.4.jar包 2.在控制器中添加不同的show()方法 //show()方法返回JSON对象 @RequestMappi ...

  7. Struts2返回json格式数据踩坑记录

    事件起因 昨天提测修改冻结/解冻银行卡样式的功能,微姐测试过程中发现调用ajax请求耗时过长,今天来排查,发现浏览器请求/finance/ajax/freeze/ajaxGetShopLists时,对 ...

  8. Web API返回JSON数据

    对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...

  9. web Api 返回json 的两种方式

    web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...

随机推荐

  1. Python-Tkinter的Entry详解

    #Tkinter教程之Entry篇 #Entry用来输入单行文本 '''1.第一个Entry程序''' from Tkinter import * root = Tk() Entry(root,tex ...

  2. 泥鳅般的const(一个小Demo彻底搞清楚)

    #include<stdio.h> int main(){     int a = 3;     int b = 5;          /* C标准库函数中最常见格式, 目的是保护參数, ...

  3. 【Unity Shaders】使用CgInclude让你的Shader模块化——Unity内置的CgInclude文件

    本系列主要參考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同一时候会加上一点个人理解或拓展. 这里是本书全部的插图. 这里是本书所需的代码 ...

  4. 用VS2005编译生成Lua库文件和解释器

    TMD,本来很简单的东西,网上说的乱七八糟,说的也不明白,大家抄来抄去,估计都不自己实践的..花了半个下午研究了一下,总结一下. 1)下载lua工程文件,地址为http://www.lua.org/f ...

  5. HttpClient4的使用,模拟浏览器登陆新浪微博,发表微博和文字+图片微博

    HttpClient4,最原始的需求就是使用其来模拟浏览器想服务器发起http请求,当然,他的功能不止于此,但是我需要的就是这个功能而已,jdk也有其自带的类似的api:UrlConnection,效 ...

  6. asp.net Form 认证【转】

    第一部分 如何运用 Form 表单认证 一.        新建一个测试项目 为了更好说明,有必要新建一个测试项目(暂且为“FormTest”吧),包含三张页面足矣(Default.aspx.Logi ...

  7. JAVA命令参数详解

    JAVA命令参数详解 JAVA命令详解 结构 说明 Java 和 OldJava JIT 选项 另请参阅 结构 java [ options ] class [ argument ... ] java ...

  8. GlusterFS源代码解析 —— GlusterFS 简单介绍

    原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564185 -- -- 本系列博客源代码是基于GlusterFS 3 ...

  9. SICP 1.20经验

    1.20 两者之间的主要区别是,使我们明白的操作顺序. 网上找一些答案,都死了扩大. 我们所从事的IT的. 展开搞死人IT实践. 首先考虑应用程序 我们得到 gcd(206, 40) -> gc ...

  10. 三层架构与MVC

    三层简介 先说说Web三层架构这个古老话题.地球人都知道web三层架构是指: • >用户接口层(UI Layer) • >业务逻辑层(Bussiness Layer) • >持久化层 ...