关于AjaxFileUpload后台返回Json的处理
来源:互联网 发布:小区网络监控布线 编辑:程序博客网 时间:2024/04/30 15:29
项目中用到图片的无刷新上传,因此想到用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 @ResponseBodyString 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',
31 0
- 关于AjaxFileUpload后台返回Json的处理
- 关于Jquery+ajaxfileupload +strtus2实现在无刷新上传的返回json不能解析
- 关于PHP返回json的处理
- jquery处理后台返回来的JSON,JSON中属性为JSON,或者数组的处理
- Java后台返回和处理JSon数据的方法
- iOS 处理后台返回的json(或NSDictionary)形式字符串
- ajax请求后台返回json的两种处理方法
- JavaScript >AjaxFileUpload插件无法解析后台传来的json数据
- ajaxfileupload返回json带<pre>
- ajaxfileupload返回的json数据带<pre></pre>标签
- ajax后台处理返回json值
- ajax请求返回json后台处理
- 解决处理后台返回json数据格式问题
- IE使用ajaxFileUpload上传文件后台返回json类型前台弹出下载提示框
- 关于后台返回json数据给前台
- ajaxfileupload对于json格式处理的问题(firefox、ie)
- ajaxfileupload对于json格式处理的问题(firefox、ie)
- PHP关于Ajax返回多个json数据的处理
- Android Push Notification实现信息推送使用
- IOS推送消息(java实现)
- union 与 union all
- android4.0以上屏蔽home键的方法(有源代码)
- cocos2dx 前后端交互
- 关于AjaxFileUpload后台返回Json的处理
- mysql导入与导出
- 【转】域名服务商为DNSPOD如何开启“网站安全防御(WAF)”?
- 一种基于引用计数的智能指针的实现
- NET的压缩类说明
- Java类如果定义了构造函数 用 class.newInstance()会报异常java.lang.InstantiationException
- Nginx+php fastcgi 发生 Access Denied
- 新辰:台北90后创业炸鸡配啤酒 来自星星的你 不成功也难
- 集群和分布式的区别