上传图片的请求方式一般分为两种:
第一种是通过表单中的action跳转。
第二种是通过Ajax异步传输。
本篇文章使用的是第二种方式。
commons-fileupload
commons-fileupload
1.3.1
springmvc的配置文件
前台html页面
文件上传与下载文件:
上传文件
$(function () {
$("#upload").click(function () {
var formData = new FormData($('#uploadForm')[0]);//序列化表单,将上传类型设置为文件对象
$.ajax({
type: 'post',
url: "/upload.action",
data: formData,
cache: false,//文件不设置缓存
processData: false,//数据不被转换为字符串
contentType: false,//上传文件时使用,避免 JQuery 对其操作
}).success(function (data) {
alert("上传成功");
}).error(function () {
alert("上传失败");
});
});
});
action文件
@RequestMapping(value = "/upload.action")
public @ResponseBody
String update(@RequestParam(value = "fileName", required = false) MultipartFile file, HttpServletRequest request) throws IOException {
String path = ServletContext().getRealPath("upload");//文件的上传路径
System.out.println("path" + path);
String fileName = OriginalFilename();//获取文件名
System.out.println("文件名" + fileName);
String path1[] = path.split("\\");//对于特殊字符的分隔| ^ $ * . ( ) /等都是正则表达式的一部分,只能通过前面加上\进行转义。注意要用三个\,也就是split(“\\”)
String path2 = path1[path1.length - 1];//截取图片所在的文件夹名称
File dir = new File(path, fileName);//将指定文件上传到指定的目录下
/**
* 如果文件夹不存在,自动创建该文件夹
*/
if (!ists()) {
dir.mkdirs();
}
//MultipartFile自带的解析方法
if (!file.isEmpty()) {
return path2 + '\' + fileName;
} else {
System.out.println("空文件");
return "不允许上传空文件";
}
}
完整的代码已经上传至github,写的不好,欢迎指教。
本文发布于:2024-02-04 21:21:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170716705159726.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |