1. @RequestMapping(method=RequestMethod.POST,value = "/upload")
  2. public ModelAndView processImageUpload(@RequestParam(value="groupname",required=false) String group,
  3. @RequestParam(value="remotefilename",required=false) String remotefilename,
  4. @RequestParam(value="extname",required=true) String extname,
  5. @RequestParam("file") MultipartFile file ,@RequestParam(value="format",required=false) String format // 关键就是这句话起了作用
  6. ){
  7. Response<FastDFSFile> response = new Response<FastDFSFile>();
  8. ReturnResult<FastDFSFile> returnResult = new ReturnResult<FastDFSFile>();
  9. ResponseHeader responseHeader = new ResponseHeader();
  10. boolean appendFlag = false;
  11. String[] results = null;
  12. try {
  13. if (!file.isEmpty()) {
  14. if(group != null && !group.equals("") && remotefilename != null && !remotefilename.equals("")){
  15. results = new String[2];
  16. results[0] = group;
  17. results[1] = remotefilename;
  18. appendFlag = true;
  19. }else
  20. appendFlag = false;
  21. byte[] file_buff = file.getBytes();
  22.  
  23. String[] fDinfo = FastDFS.getServer().upload(appendFlag, results, file_buff, extname);
  24. if(fDinfo.length == 2){
  25. List<FastDFSFile> fileList = new ArrayList<FastDFSFile>();
  26. FastDFSFile info = new FastDFSFile();
  27. info.setGroupname(fDinfo[0]);
  28. info.setRemotefilename(fDinfo[1]);
  29. fileList.add(info);
  30. responseHeader.setStatus(0);
  31. returnResult.setNumFound(1);
  32. returnResult.setStart(1);
  33. returnResult.setFilelist(fileList);
  34. }else if(fDinfo.length == 1){
  35. throw new UFEException(fDinfo[0]);
  36. }else{
  37. throw new UFEException("no return fastDFS!");
  38. }
  39. }else{
  40. RError er = new RError();
  41. er.setInfo("No file!");
  42. er.setType(1);
  43. responseHeader.setError(er);
  44. responseHeader.setStatus(1);
  45. }
  46. } catch (Exception e1) {
  47. RError er = new RError();
  48. if(e1.getCause() == null)
  49. er.setInfo(e1.getMessage());
  50. else
  51. er.setInfo(e1.getCause().getMessage());
  52. er.setType(1);
  53. responseHeader.setStatus(1);
  54. responseHeader.setError(er);
  55. }
  56. response.setResult(returnResult);
  57. response.setResponseHeader(responseHeader);
  58. if(format != null && format.equals("json"))
  59. return new ModelAndView(TypeDef.JSON_VIEW_NAME, "object", response);
  60. else
  61. return new ModelAndView(TypeDef.XML_VIEW_NAME, "object", response);
  62. }

http 上传文件的更多相关文章

  1. IE8/9 JQuery.Ajax 上传文件无效

    IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...

  2. 三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader

    发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"up ...

  3. asp.net mvc 上传文件

    转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...

  4. app端上传文件至服务器后台,web端上传文件存储到服务器

    1.android前端发送服务器请求 在spring-mvc.xml 将过滤屏蔽(如果不屏蔽 ,文件流为空) <!-- <bean id="multipartResolver&q ...

  5. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. 前端之web上传文件的方式

    前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传 ...

  8. Django session cookie 上传文件、详解

    session 在这里先说session 配置URL from django.conf.urls import patterns, include, url from django.contrib i ...

  9. 4 django系列之HTML通过form标签来同时提交表单内容与上传文件

    preface 我们知道提交表单有2种方式,一种直接通过submit页面刷新方法来提交,另一种通过ajax异步局部刷新的方法提交,上回我们说了通过ajax来提交文件到后台,现在说说通过submit来提 ...

  10. 1. Django系列之Django与ajax上传文件

    html代码如下: <div class="form-group"> <label for="exampleInputFile">附件上 ...

随机推荐

  1. Hbernate映射类型

    对应oracle中的数据库:用timestamp

  2. 1 Ionic和Hybird应用介绍

    1.Ionic是什么,它和Angular.Cordova有什么关系? Ionic通过整合各种技术和功能使构建Hybird应用更加快速.容易和美观.Ionic生态系统基于Angular和Cordova, ...

  3. 三、jQuery--jQuery基础--jQuery基础课程--第1章 初识jQuery

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  4. php导出excel封装类

    因为实际情况的需要,导出excel表格在后台开发的过程中会经常用到.下面是我在实际应用中自己整理的一个导出excel类,需要PHPExcel支持,本类很好的完成导出表格的基本样式,保存路径,切换工作薄 ...

  5. Android中libs目录下armeabi和armeabi-v7a的区别

    armeabi默认选项,支持基于 ARM* v5TE 的设备支持软浮点运算(不支持硬件辅助的浮点计算)支持所有 ARM* 设备 armeabi-v7a支持基于 ARM* v7 的设备支持硬件 FPU ...

  6. 【PHP数组的使用】

    PHP数组使用关键字array标识,数组内的元素可以是任意类型,而且可以不是同一种类型,这和c.java不同. 遍历数组的方法可以使用foreach,也可以使用for循环 可以使用print_r或者v ...

  7. 记录一次冷备恢复遇到的 ORA-00304问题

    希望通过冷备一个数据库,然后在另外一台数据库进行恢复 1.打tar包 tar -czvf Prod.tar.gz *control01.ctlcontrol02.ctlredo01.logredo02 ...

  8. less2

    less2 @base-color: #000; @fore-color: darken(@base-color, 50%); @back-color: lighten(@base-color, 50 ...

  9. php判断访问的当前设备是手机还是电脑

    <?php function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AG ...

  10. WebRTC音视频引擎研究(1)--整体架构分析

    WebRTC技术交流群:234795279 原文地址:http://blog.csdn.net/temotemo/article/details/7530504     1.WebRTC目的     ...