1. 添加依赖包maven
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
2. 配置注入
<!-- 这里申明的id必须为multipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--配置上传文件-->
<property name="defaultEncoding" value="utf-8"/><!--默认字符编码-->
<property name="maxUploadSize" value="10485760000"/><!--上传文件大小-->
<property name="maxInMemorySize" value="4096"/><!--内存中的缓存大小-->
</bean>
3. html
<form target="hidden_frame" id="uploadFromId" enctype="multipart/form-data">
<input id="logFileUpload" type="file" name="logFile">
<input id="param1" type="text" name="param1" placeholder="请输入要传递的参数1">
<input id="param2" type="text" name="param2" placeholder="请输入要传递的参数2">
</form>
<button id="fileUploadBtn" >上传</button>
4. js ajax
<script src="/js/jquery-3.2.1.js"></script>
<script>
$('#fileUploadBtn').click(function () {
$('#param1').val('传输参数1');
$('#param2').val('传输参数2');
var formobj = document.getElementById("uploadFromId");
var formdata = new FormData(formobj);
$.ajax({
url: "logFile.do",
type: 'POST',
data: formdata,
dataType: "text",
contentType:false,
processData:false
}).done(function(result){
alert(result);
}).fail(function(err){
alert(err);
});
});
</script>
5. java后台
@RequestMapping(value="logFile.do",method=RequestMethod.POST)
@ResponseBody
public String logFile(@RequestParam("logFile")MultipartFile logFile,@RequestParam("param1")String param1,@RequestParam("param2")String param2) throws IOException {
String filename = logFile.getOriginalFilename();//获取上传文件的文件名
InputStream file = null;
try {
file = logFile.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
InputStreamReader inputStreamReader = new InputStreamReader(file,"utf-8");
BufferedReader bf = new BufferedReader(inputStreamReader);
String newLine = "";
while((newLine = bf.readLine()) != null){
if(newLine.equals("")){
}else {
System.out.print("\n newLine = "+newLine);
}
}
System.out.print("\n\n\n filename = "+filename);
System.out.print("\n\n\n param1 = "+param1);
System.out.print("\n\n\n param2 = "+param2);
return "上传成功";
}