Spring文件下载与上传 FormData

Spring实现文件的上传与下载

文件上传可以使用FormData
前端实现代码:使用表单进行提交

<form class="form-horizontal" method="post" id="uploadFileForm"
enctype="multipart/form-data" onkeydown="if(event.keyCode==13){return false;}">
<div class="form-group">
<label class="col-xs-3 control-label">选择上传文件</label>
<div class="col-xs-9">
<div class="input-group file-caption-main">
<div tabindex="500" class="form-control file-caption kv-fileinput-caption">
<div class="file-caption-name"></div>
</div>
<div class="input-group-btn">
<div tabindex="500" class="btn btn-primary btn-file">
<i class="glyphicon glyphicon-folder-open"></i>
<span class="hidden-xs">浏览 …</span>
<input class="form-control projectfile" type="file">
</div>
</div>
</div>
</div>
</div>
<input type="hidden" name="containerName" id="containerName" value="${containerName!}">
<input type="hidden" name="namespace" id="namespace" value="${namespace!}">
</form>

js部分代码(使用ajax进行文件的上传)
$.ajax({
url : ‘‘,
dataType : ‘json‘,
data : form,
type : ‘POST‘,
processData : false, // 告诉jQuery不要去处理发送的数据
contentType : false,
success : function(result){
。。。。。。。。。。。。。。

其中的data:
var form = new FormData();
var fileObj = document.getElementById("uploadFileName").files[0];
var fileName = $("#fileName").val();//文件的名字
var containerName = $("#containerName").val();
var namespace = $("#namespace").val();
form.append("file", fileObj);
form.append("fileName", fileName);

后台接收代码
/**
* 文件上传
*
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public ResponseData<String> upload(HttpServletRequest request,
@RequestParam("file") CommonsMultipartFile file, String fileName) {
//可以对file进行一些列的操作,以后的细化可以在service层进行操作
//下面列举一些常见的操作
file.getOriginalFilename();
file.getName();
file.getBytes();
file.getContentType();
file.getSize();
file.isEmpty()

//文件的保存
String filePath = "D:\\file\temp";
File fileTemp = new File(filePath);
//临时存放的路径不存在情况下 创建路径
if(!fileTemp.exits()) {
fileTemp.mkdirs();
}
file.transferTo(fileTemp);
return data;
}

文件的下载
这里面可以使用:①<a href="${baseUrl}/file/download"/>
②使用ifream
这里介绍的使用第二种的方法
<iframe id="iframeForDownload" style="display:none" width="0" height="0"></iframe>

点击事件之后可以设置:$("#iframeForDownload").src=baseUrl+"/file/download";

后台代码
/**
*文件下载
*
*/
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void download(HttpServletRequest request, HttpServletResponse response, @RequestParam String containerPath,
@RequestParam String uuid) {
File file = new File("E:\\file\\\temp\\name.jpg");
OutputStream out = null;
InputStream in = null;
if (null != file && file.length() > 0) {
try {
String fileName = URLEncoder.encode("name.jpg", "UTF-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addDateHeader("Expries", 0);
in = new FileInputStream(file);
out = response.getOutputStream();
StreamUtils.copy(in, out);
} catch (Exception e) {
LOGGER.error("Container file download error:", e);
} finally {
try {
in.close();
out.close();
} catch (Exception e) {
......
}
}
}
}

时间: 2024-11-07 10:48:47

Spring文件下载与上传 FormData的相关文章

spring mvc 图片上传,图片压缩、跨域解决、 按天生成目录 ,删除,限制为图片代码等相关配置

spring mvc 图片上传,跨域解决 按天生成目录 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ #fs.domains=182=http://172.16.100.182:18080,localhost=http://localhost:8080 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE be

spring mvc(注解)上传文件的简单例子

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少 大家可以看具体代码如下: web.xml &

spring mvc文件上传方法

spring mvc上传功能很强大. spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype="multipart/form-data" 这个是上传文件必须的2.applicationContext.xml中 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolv

spring mvc 批量上传+文件上传

spring mvc 批量上传+文件上传 简单3步走.搞定! 上传文件成功后: 1 上传文件核心方法 public static String saveWebImgFile(MultipartFile imgFile){ String webFilePath = ""; if(imgFile.getSize() > 0 && isImage(imgFile.getContentType())){ FileOutputStream fos = null; try {

spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置

spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ #fs.domains=182=http://172.16.100.182:18080,localhost=http://localhost:8080 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE b

DiskFileUpload上传与Spring的CommonsMultipartResolver上传对比

最近在做一个小小的上传功能竟被虐得体无完肤, 在使用tomcat内置的DiskFileUpload获取前台jsp传来的附件参数和其他表单参数, 竟然出现莫名其妙的乱码问题, 即使tomcat的server.xml和web.xml和jsp页面都做了UTF8 encode处理, 可还是有乱码问题! 正当我想到用new String(fileItem.getName().getBytes("GBK"),"UTF-8");这个办法临时解决了乱码问题(想不通怎么会有GBK,

spring实现文件上传(图片解析)

合抱之木,生于毫末,千里之行,始于足下,要想了解spring的文件上传功能,首先要知道spring是通过流的方式将文件进行解析,然后上传.那么是不是所有需要用的文件上传的地方都要写一遍文件解析器呢? 放心,spring这个大管家已经为我们做好了一切! 我们只需要在spring的配置文件中加入下面代码: <!-- 文件上传解析器 --> <bean id="multipartResolver" class="org.springframework.web.mu

Spring SpringMVC文件上传错误(二)

续上文, 场景: 不上传文件提交表单. 简述一下:表单请求的两种方式 同步提交 异步提交 笔者之前写过的测试Demo: HTML: <form action="upload.do" method="post" enctype="multipart/form-data"> <input type="file" name="fileName" /> <input type=&quo

Spring mvc 文件上传到文件夹(转载+心得)

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少 applicationContext.xml