您的位置:首页 > 编程语言 > Java开发

Spring CommonsMultipartResolver文件上传的使用

2015-12-21 09:49 801 查看
Java代码

...Controller...{

//创建一个通用的多部分解析器.
CommonsMultipartResolver commonsMultipartResolver = new
CommonsMultipartResolver(request.getSession().getServletContext());
//设置编码
commonsMultipartResolver.setDefaultEncoding(”utf-8″);
//判断 request 是否有文件上传,即多部分请求...
if (commonsMultipartResolver.isMultipart(request))
{
//转换成多部分request
MultipartHttpServletRequest multipartRequest =
commonsMultipartResolver.resolveMultipart(request);

// file 是指 文件上传标签的 name=值
// 根据 name 获取上传的文件...
MultipartFile file = multipartRequest.getFile("file");

//上传后记录的文件...
File imageFile = new File("fileName");
//上传...
file.transferTo(imageFile);

}
}


jsp代码

<form name="form1"   method="POST" enctype="multipart/form-data"
action="/msgupload" target="upload_if">
<button class="btn btn-primary able" name = "btnporject" id="queryfa"
type="button" style="float: inherit;"/>
请选择要上传的文件: <input type="file" name="file">
<input type="submit" id="sub" class="btn btn-primary" value="上传">
<iframe name='upload_if' id="hidden_frame" style='display:none'></iframe>
</form>


java代码

@RequestMapping(value = "/msgupload", method = RequestMethod.POST)
public String handleFileUpload(Model model, @RequestParam("file") MultipartFile file, HttpServletRequest request,
HttpServletResponse response) {
try{
if (!file.isEmpty()) { // 创建一个通用的多部分解析器.
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
// 判断 request 是否有文件上传,即多部分请求...
if (multipartResolver.isMultipart(request)) {
// 判断 request 是否有文件上传,即多部分请求...
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) (request);

Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file1 = multiRequest.getFile(iter.next());
String fileName = file1.getOriginalFilename();
String ftp_id = System.currentTimeMillis();
Properties propsFile = new Properties();
InputStream in = null;
String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath();
in = new BufferedInputStream(new FileInputStream(path1 + "ftpcontrol.properties"));
propsFile.load(in);
String path = propsFile.getProperty("upload_path") + ftp_id + ".zip";
File localFile = new File(path);
if (!(fileName.contains("zip"))) {
......
} else {
// 上传文件
file1.transferTo(localFile);
int count = msgSendService.unZip(localFile);
if(count == 0) {
......
}
......
}
}
}
} else {
......
}
}catch(Exception e) {
......
}
......
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: