Spring文件下載與上傳 FormData
阿新 • • 發佈:2017-08-23
thead group fileinput ase ppi index function ctf code
/**
* 文件上傳
*
*/
@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) {
......
}
}
}
}
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) {
......
}
}
}
}
Spring文件下載與上傳 FormData