@RequestMapping(method=RequestMethod.POST,value = "/upload")
public ModelAndView processImageUpload(@RequestParam(value="groupname",required=false) String group,
@RequestParam(value="remotefilename",required=false) String remotefilename,
@RequestParam(value="extname",required=true) String extname,
@RequestParam("file") MultipartFile file ,@RequestParam(value="format",required=false) String format // 关键就是这句话起了作用
){
Response<FastDFSFile> response = new Response<FastDFSFile>();
ReturnResult<FastDFSFile> returnResult = new ReturnResult<FastDFSFile>();
ResponseHeader responseHeader = new ResponseHeader();
boolean appendFlag = false;
String[] results = null;
try {
if (!file.isEmpty()) {
if(group != null && !group.equals("") && remotefilename != null && !remotefilename.equals("")){
results = new String[2];
results[0] = group;
results[1] = remotefilename;
appendFlag = true;
}else
appendFlag = false;
byte[] file_buff = file.getBytes(); String[] fDinfo = FastDFS.getServer().upload(appendFlag, results, file_buff, extname);
if(fDinfo.length == 2){
List<FastDFSFile> fileList = new ArrayList<FastDFSFile>();
FastDFSFile info = new FastDFSFile();
info.setGroupname(fDinfo[0]);
info.setRemotefilename(fDinfo[1]);
fileList.add(info);
responseHeader.setStatus(0);
returnResult.setNumFound(1);
returnResult.setStart(1);
returnResult.setFilelist(fileList);
}else if(fDinfo.length == 1){
throw new UFEException(fDinfo[0]);
}else{
throw new UFEException("no return fastDFS!");
}
}else{
RError er = new RError();
er.setInfo("No file!");
er.setType(1);
responseHeader.setError(er);
responseHeader.setStatus(1);
}
} catch (Exception e1) {
RError er = new RError();
if(e1.getCause() == null)
er.setInfo(e1.getMessage());
else
er.setInfo(e1.getCause().getMessage());
er.setType(1);
responseHeader.setStatus(1);
responseHeader.setError(er);
}
response.setResult(returnResult);
response.setResponseHeader(responseHeader);
if(format != null && format.equals("json"))
return new ModelAndView(TypeDef.JSON_VIEW_NAME, "object", response);
else
return new ModelAndView(TypeDef.XML_VIEW_NAME, "object", response);
}

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. http://poj.org/problem?id=3278(bfs)

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 76935   Accepted: 24323 ...

  2. NYOJ题目1048破门锁

  3. yii2.0框架安装心得

    yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...

  4. 利用drozer进行Android渗透测试

    一.安装与启动 1. 安装 第一步:从 http://mwr.to/drozer 下载Drozer (Windows Installer) 第二步:在 Android 设备中安装 agent.apk ...

  5. 【openGL】画正弦函数图像

    #include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math ...

  6. POJ1351 Number of Locks(数学)

    截至写博客为止,貌似这是网上第一个采用数学公式来处理的. 网上的题解都是DFS或是动态规划,但感觉可以推公式直接用数学的方法处理,想了好久,终于推出公式. 题意:一个长度为n的由数字1,2,3,4 组 ...

  7. css2

    CSS 实现div宽度根据内容自适应 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  8. VS2015上又一必备免费插件:Refactoring Essentials

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Refactoring Essentials是一款用于代码分析和重构的开源免费VS20 ...

  9. Android SDK Manager 中如果没有相应的镜像ARM XX Image

    Android SDK Manager 中如果没有相应的镜像ARM XX Image 处理做法是:先更新 相应版本Android SDK Tools 然后出现 ARM XX Image

  10. 在Salesforce中向Page Layout中添加Visualforce Page

    在Salesforce中可以向Object所对应的Layout中添加我们自定义的Visualforce Page. 此时的Visualforce Page与Asp.Net MVC中的Partial V ...