xml
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="204800" />
</bean>
html
<form id= "uploadForm" class="form-horizontal" role="form" enctype="multipart/form-data" method="POST" action="">
<label for="inputname" class="col-sm-1 control-label">文件选择</label>
<div class="col-sm-1 col-sm-offset-1">
<input type="file" id="file" name="upload" onchange="set(this)">
<input type="text" id="fileId" style="display:none">
<input type="text" id="fileVersion" name="fileVersion" style="display:none">
</div>
<div class="col-sm-1 col-sm-offset-2">
<input type="button" @click="submitUpload" value="上传" style="display:none">
</div>
</form>
js
var formData = new FormData($( "#uploadForm" )[0]);
$.ajax({
url : "../app/application/upload",
type: 'POST',
data: formData,
dataType:'json',
async: false,
cache: false,
contentType: false,
processData: false,
success : function(r) {
if(r.code === 0){
alert('上传成功!请补充基本信息并保存')
}else{
alert('文件已存在,请修改版本后上传');
}
},
});
function set(file){
var input = document.getElementById("file");
var val= $("#file").val();
var type = val.substr(val.lastIndexOf(".")+1);
var str=val.substr(0,val.lastIndexOf("."));
document.getElementById("fileName").value=str;
document.getElementById("fileType").value=type;
}
java
@RequestMapping("/upload")
public Result upload(HttpServletRequest request) {
String version=request.getParameter("fileVersion");
Result result = null;
try {
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = mRequest.getFileMap();
Iterator<Map.Entry<String, MultipartFile>> it = fileMap.entrySet().iterator();
String fileName = "";
InputStream inStream =null;
while(it.hasNext()) {
Map.Entry<String, MultipartFile> entry = it.next();
MultipartFile mFile = entry.getValue();
fileName = mFile.getOriginalFilename();
inStream=mFile.getInputStream();
}
String path=Global.getAppFilesDir();
byte[] buffer = new byte[1024 * 5];
String name=fileName;
File temp = new File(path,name);
if(!temp.exists()){
try {
temp.createNewFile();
FileOutputStream fs = new FileOutputStream(temp);
int bytesum = 0;
int byteread = 0;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
fs.write(buffer, 0, byteread);
}
inStream.close();
fs.close();
result = Result.ok();
} catch (IOException e) {
e.printStackTrace();
result = Result.error();
}
}else{
result = Result.error("已存在同名同类型同版本文件,请重命名文件");
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}