- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章webuploader+springmvc实现图片上传功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文为大家分享了webuploader springmvc实现图片上传的具体代码,供大家参考,具体内容如下 。
jsp文件 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
<%@ page language=
"java"
contenttype=
"text/html; charset=utf-8"
pageencoding=
"utf-8"
%>
<!doctype html
public
"-//w3c//dtd html 4.01 transitional//en"
"http://www.w3.org/tr/html4/loose.dtd"
>
<html>
<head>
<meta http-equiv=
"content-type"
content=
"text/html; charset=utf-8"
>
<title>insert title here</title>
<link rel=
"stylesheet"
type=
"text/css"
href=
"${pagecontext.request.contextpath}/manage/widget/webuploader/0.1.5/webuploader.css"
rel=
"external nofollow"
>
<script src=
"${pagecontext.request.contextpath}/manage/assets/js/jquery.min.js"
></script>
<script src=
"${pagecontext.request.contextpath}/manage/widget/webuploader/0.1.5/webuploader.js"
></script>
</head>
<body>
<h3>图片上传</h3>
<!--dom结构部分-->
<div id=
"uploader-demo"
>
<!-- 用来存放item -->
<div id=
"filelist"
class
=
"uploader-list"
></div>
<div id=
"upinfo"
></div>
<div id=
"filepicker"
>选择文件</div>
</div>
<input type=
"button"
id=
"btn"
value=
"开始上传"
>
<script>
//图片上传demo
jquery(function() {
var $ = jquery,
$list = $(
'#filelist'
),
// 优化retina, 在retina下这个值是2
ratio = window.devicepixelratio ||
1
,
// 缩略图大小
thumbnailwidth =
100
* ratio,
thumbnailheight =
100
* ratio,
// web uploader实例
uploader;
// 初始化web uploader
uploader = webuploader.create({
// 自动上传。
auto:
false
,
// swf文件路径
swf:
'${pagecontext.request.contextpath }/manage/widget/webuploader/0.1.5/uploader.swf'
,
// 文件接收服务端。
server:
'${pagecontext.request.contextpath }/uploader.action'
,
threads:
'5'
,
//同时运行5个线程传输
filenumlimit:
'10'
,
//文件总数量只能选择10个
// 选择文件的按钮。可选。
pick: {id:
'#filepicker'
,
//选择文件的按钮
multiple:
true
},
//允许可以同时选择多个图片
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality:
90
,
//限制传输文件类型,accept可以不写
accept: {
title:
'images'
,
//描述
extensions:
'gif,jpg,jpeg,bmp,png,zip'
,
//类型
mimetypes:
'image/*'
//mime类型
}
});
// 当有文件添加进来的时候,创建img显示缩略图使用
uploader.on(
'filequeued'
, function( file ) {
var $li = $(
'<div id="'
+ file.id +
'" class="file-item thumbnail">'
+
'<img>'
+
'<div class="info">'
+ file.name +
'</div>'
+
'</div>'
),
$img = $li.find(
'img'
);
// $list为容器jquery实例
$list.append( $li );
// 创建缩略图
// 如果为非图片文件,可以不用调用此方法。
// thumbnailwidth x thumbnailheight 为 100 x 100
uploader.makethumb( file, function( error, src ) {
if
( error ) {
$img.replacewith(
'<span>不能预览</span>'
);
return
;
}
$img.attr(
'src'
, src );
}, thumbnailwidth, thumbnailheight );
});
// 文件上传过程中创建进度条实时显示。 uploadprogress事件:上传过程中触发,携带上传进度。 file文件对象 percentage传输进度 nuber类型
uploader.on(
'uploadprogress'
, function( file, percentage ) {
var $li = $(
'#'
+file.id ),
$percent = $li.find(
'.progress span'
);
// 避免重复创建
if
( !$percent.length ) {
$percent = $(
'<p class="progress"><span></span></p>'
)
.appendto( $li )
.find(
'span'
);
}
$percent.css(
'width'
, percentage *
100
+
'%'
);
});
// 文件上传成功时候触发,给item添加成功class, 用样式标记上传成功。 file:文件对象, response:服务器返回数据
uploader.on(
'uploadsuccess'
, function( file,response) {
$(
'#'
+file.id ).addclass(
'upload-state-done'
);
//console.info(response);
$(
"#upinfo"
).html(
"<font color='red'>"
+response._raw+
"</font>"
);
});
// 文件上传失败 file:文件对象 , code:出错代码
uploader.on(
'uploaderror'
, function(file,code) {
var $li = $(
'#'
+file.id ),
$error = $li.find(
'div.error'
);
// 避免重复创建
if
( !$error.length ) {
$error = $(
'<div class="error"></div>'
).appendto( $li );
}
$error.text(
'上传失败!'
);
});
// 不管成功或者失败,文件上传完成时触发。 file: 文件对象
uploader.on(
'uploadcomplete'
, function( file ) {
$(
'#'
+file.id ).find(
'.progress'
).remove();
});
//绑定提交事件
$(
"#btn"
).click(function() {
console.log(
"上传..."
);
uploader.upload();
//执行手动提交
console.log(
"上传成功"
);
alert(
"上传成功!"
);
});
});
</script>
</body>
</html>
|
springmvc 的 servlet加入以下代码(允许上传)
1
|
<bean id=
"multipartresolver"
class
=
"org.springframework.web.multipart.commons.commonsmultipartresolver"
/>
|
引入的包 。
commons-io-1.3.2.jar commons-fileupload-1.2.1.jar 。
java代码 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package
com.shopping.controller;
import
java.io.file;
import
java.io.ioexception;
import
java.util.map;
import
javax.servlet.http.httpservletrequest;
import
javax.servlet.http.httpservletresponse;
import
org.springframework.stereotype.controller;
import
org.springframework.web.bind.annotation.requestmapping;
import
org.springframework.web.multipart.multipartfile;
import
org.springframework.web.multipart.multiparthttpservletrequest;
/**
* @author mazn
* @date 创建时间:2017年5月2日 下午10:02:36
* @parameter
* @return
*/
@controller
public
class
uploadimgcontroller {
int
counter =
0
;
@requestmapping
(
"/uploader"
)
public
void
upload(httpservletrequest request,httpservletresponse response){
//string filename;
// file tagetfile;
system.out.println(
"收到图片!"
);
multiparthttpservletrequest murequest = (multiparthttpservletrequest)request;
map<string, multipartfile> files = murequest.getfilemap();
//得到文件map对象
//string upaloadurl = request.getsession().getservletcontext().getrealpath("/")+"upload/";//得到当前工程路径拼接上文件名
string t=thread.currentthread().getcontextclassloader().getresource(
""
).getpath();
int
num=t.indexof(
".metadata"
);
string small =
"small"
;
string upaloadurl=t.substring(
1
,num).replace(
'/'
,
'\'
)+
"image\"
+small+
"\"
;
//+"项目名\webcontent\文件";
file dir =
new
file(upaloadurl);
system.out.println(upaloadurl);
string img_url = upaloadurl;
//图片路径
if
(!dir.exists())
//目录不存在则创建
dir.mkdirs();
for
(multipartfile file :files.values()){
counter++;
string filename=file.getoriginalfilename();
file tagetfile =
new
file(upaloadurl+filename);
//创建文件对象
img_url += filename;
if
(!tagetfile.exists()){
//文件名不存在 则新建文件,并将文件复制到新建文件中
try
{
tagetfile.createnewfile();
}
catch
(ioexception e) {
e.printstacktrace();
}
try
{
file.transferto(tagetfile);
}
catch
(illegalstateexception e) {
e.printstacktrace();
}
catch
(ioexception e) {
e.printstacktrace();
}
}
}
system.out.println(img_url);
system.out.println(
"接收完毕"
+counter);
}
}
|
参考:webuploader客户端批量上传图片 后台使用springmvc 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/qq_33303319/article/details/71114012 。
最后此篇关于webuploader+springmvc实现图片上传功能的文章就讲到这里了,如果你想了解更多关于webuploader+springmvc实现图片上传功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
基于SpringBoot版本如下: org.springframework.boot spring-boot-starter-parent 2.5.2
@RestController public class TestController { @GetMapping("/download") public ResponseEntit
概述 记得之前跟前端同事联调接口的时候,后端SpringMVC需要接收数组类型的参数,然后跟前端说需要传数组类型过来。后来前端童鞋传了数组,但是后端接收不成功,联调失败。那时候由于时间关系没有仔细研究
web.xml 片段: contextConfigLocation /WEB-INF/applicationContext-security.xml a
目录 相关准备 功能清单 具体功能:访问首页 ①配置view-controller ②创建页面
Spring mvc是一个非常轻量的mvc框架,注解可以大大减少配置,让请求的拦截变得比较简单。这次记录下@RequestBody 注解接收参数尤其是数组参数的用法。 关于容器的配置不再多说,这里
目录 SpringMVC默认处理的几种异常 @ResponseStatus 异常处理的顺序 自定义异常类(SpringMVC的异常处理)
目录 SpringMVC 接收前端传递的参数四种方式 @RequestParam 获取注解 @PathVariable获取注解 Sp
目录 @PathVariable的用法解析 问题描述 解析过程 动态参数使用@PathVariable
目录 SpringMVC @NotNull校验不生效 加了两个依赖问题解决 @NotNull注解失效原因之一 Lo
springmvc―handlermapping三种映射 handlermapping负责映射中央处理器转发给controller的映射策略,简单说就是控制中央处理器的请求触发哪一个control
目录 使用ModelAndView向request域对象共享数据 使用Model向request域对象共享数据 使用map向request域对象共享数据
整合SSM 环境要求 环境: IDEA MySQL5.7.19 Tomcat9 Maven3.6 要求: 需要熟练掌握MySQL数据库,Spring,Ja
目录 1、SpringMVC简介 2、工作流程与介绍 3、代码截图 以下组件通常使用框架提供实现: 1、Di
简介 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器
背景 举个例子,出现中文乱码的例子:提交表单的时候。 表单 ?
请求进入DispatcherServlet的doDispatch后,获取HandlerMethod。然后根据HandlerMethod来确认HandlerApapter,确认后执行HandlerAd
实现需求: 1.用户未登录,跳转到登录页,登录完成后会跳到初始访问页。 2.用户自定义处理(如需要激活),跳转到激活页面,激活完成后会跳到初始访问页。 使用到的框架 springmvc 的拦
为了实现用户登录拦截你是否写过如下代码呢? 1. 基于Filter ?
springmvc dao层和service层的区别 首先解释面上意思,service是业务层,dao是数据访问层 这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用d
我是一名优秀的程序员,十分优秀!