1. 程式人生 > 實用技巧 >spring mvc MultipartFile file 單檔案上傳檔案

spring mvc MultipartFile file 單檔案上傳檔案

1.pom.xml新增依賴
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
2.springmvc.xml 新增如下配置
<!-- 定義檔案上傳解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設定預設編碼 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 設定檔案上傳的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
3.頁面配置(jquery一定要引入)
<html>
<head>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.min.js"></script>
<script>

function select_file() {
$("#file").click();
}
function submit_file() {
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
url: "${pageContext.request.contextPath}/uploadfiles.do",//路徑介面 自定義
type: "POST",
processData: false,
contentType: false,
data: formData,
success: function(d) {
console.log(d);
if(d=="1"){
alert("恭喜您,上傳檔案成功!")
}else{
alert("抱歉,上傳檔案失敗!")
}
},
error: function() {
alert("請求出錯啦")
}
});
}

</script>
</head>
<body style="font-size:30px;">
<div><button onclick="select_file()">檔案上傳</button></div>
<form id="fom1" style="display: none;"
method="post" enctype="multipart/form-data">
<input type="file" id="file" name="file" onchange="submit_file();" />
</form>
</body>
<script>
</script>
</html>

4.介面
@RequestMapping("/uploadfiles.do")
@ResponseBody
public String uploadfiles(MultipartFile file, HttpServletRequest request,@RequestParam HashMap<String,Object> map) {
// 判斷檔案是否為空
if (!file.isEmpty()) {
try {
String savePath = "/aa/";
//資料夾路徑
String dirPath=request.getSession().getServletContext().getRealPath("/") + savePath;
//檔名稱
String fileName=file.getOriginalFilename();
File dir=new File(dirPath,fileName);
if(!dir.exists()){ //判斷資料夾路徑是否存在
dir.mkdirs(); //不存在建立新的資料夾

}
/* // 檔案儲存路徑(此路徑是部署在tomcat中的絕對路徑)獲取Web專案的全路徑
String filePath = request.getSession().getServletContext().getRealPath("/") + savePath
+ file.getOriginalFilename();*/
// 轉存檔案
file.transferTo(dir);
} catch (Exception e) {
e.printStackTrace();
}
return "1";
}else{
return "0";
}

}
創作不易 順手點個贊 我搞的也有勁!