Bootstrap的fileinput插件实现多文件上传的方法


Posted in Javascript onSeptember 05, 2016

*1.bootstrap-fileinput 插件git下载地址

https://github.com/kartik-v/bootstrap-fileinput.git

2.解决使用bootstrap-fileinput得到返回值

上传图片

$("#file-0a").fileinput({
uploadUrl : "/upload_img",//上传图片的url
allowedFileExtensions : [ 'jpg', 'png', 'gif' ],
overwriteInitial : false,
maxFileSize : 1000,//上传文件最大的尺寸
maxFilesNum : 1,//上传最大的文件数量
initialCaption: "请上传商家logo",//文本框初始话value
//allowedFileTypes: ['image', 'video', 'flash'],
slugCallback : function(filename) {
return filename.replace('(', '_').replace(']', '_');
}
});

注意上传图片事件完之后,得到返回值写法

$('#file-0a').on('fileuploaded', function(event, data, previewId, index) {
var form = data.form, files = data.files, extra = data.extra,
response = data.response, reader = data.reader;
console.log(response);//打印出返回的json
console.log(response.paths);//打印出路径
});

jsp页面

<input id="file-0a" class="file" type="file" multiple
data-min-file-count="1" name="upload_logo">

其中data-min-file-count=”1”是指文件上传最低数量

3.服务端代码

采用了spring自带插件上传,框架为Springmvc

Bean

import java.util.List;
public class Picture {
private List<String> paths;
public List<String> getPaths()
{
return paths;
}
public void setPaths(List<String> paths)
{
this.paths = paths;
} 
}

Controller

@ResponseBody
@RequestMapping(value="upload_img",method=RequestMethod.POST)
public Picture uploadImage(@RequestParam MultipartFile[] upload_logo) throws IOException{
log.info("上传图片");
Picture pic = new Picture();
List<String> paths = new ArrayList<String>();
String dir = UploadUtil.getFolder();
for(MultipartFile myfile : upload_logo){ 
if(myfile.isEmpty()){ 
log.info("文件未上传"); 
}else{ 
log.info("文件长度: " + myfile.getSize()); 
log.info("文件类型: " + myfile.getContentType()); 
log.info("文件名称: " + myfile.getName()); 
log.info("文件原名: " + myfile.getOriginalFilename()); 
log.info("========================================");
//上传文件 返回路径
String path = UploadUtil.writeFile(myfile.getOriginalFilename(), dir, myfile.getInputStream());
log.info("文件路径:"+path);
paths.add(path);
} 
} 
pic.setPaths(paths);
return pic;
}

uploadUtil

private static final Logger log = LoggerFactory.getLogger(UploadUtil.class);
private UploadUtil() {
}
private static SimpleDateFormat fullSdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
private static SimpleDateFormat folder = new SimpleDateFormat(
"yyyy" + File.separator + "MM" + File.separator + "dd");
/**
* 返回yyyy File.separator MM File.separator dd格式的字符串
* 
* @return
*/
public static String getFolder() {
return folder.format(new Date());
}
/**
* 文件上传
* 
* @param srcName
* 原文件名
* @param dirName
* 目录名
* @param input
* 要保存的输入流
* @return 返回要保存到数据库中的路径
*/
public static String writeFile(String srcName, String dirName, InputStream input) throws IOException {
log.info(srcName);
// 取出上传的目录,此目录是tomcat的server.xml中配置的虚拟目录
String uploadDir = ContextUtil.getSysProp("upload_dir");//设置你上传路径
// 取出虚拟目录的访问路径
String virtualDir = ContextUtil.getSysProp("virtual_dir");//设置你虚拟目录访问路径
// 重命名文件
if (null != srcName) {
srcName = srcName.substring(srcName.indexOf("."));
} else {
srcName = ".jpg";
}
String filename = "";
// 得到要上传的文件路径
filename = uploadDir + File.separator + dirName + File.separator + fullSdf.format(new Date()) + srcName;
// 得到将要保存到数据中的路径
String savePath = filename.replace(uploadDir, "");
savePath = virtualDir + savePath.replace("\\", "/");
File file = new File(filename);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
// 一次30kb
byte[] readBuff = new byte[1024 * 30];
int count = -1;
while ((count = input.read(readBuff, 0, readBuff.length)) != -1) {
fos.write(readBuff, 0, count);
}
fos.flush();
fos.close();
input.close();
return savePath;
}

4.解决上传时候遇到的一些问题

如遇见点击上传之后,进度条显示为100%,jsp页面显示[Object,obejct],那么注意你后台返回的是否为json对象。

以上所述是小编给大家介绍的Bootstrap的fileinput插件实现多文件上传的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQUERY 浏览器判断实现函数
Aug 20 Javascript
利用json获取字符出现次数的代码
Mar 22 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
js如何验证密码强度
Mar 18 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
Sep 05 #Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 #Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 #Javascript
BootStrap使用file-input插件上传图片的方法
Sep 05 #Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
Sep 05 #Javascript
Bootstrap使用基础教程详解
Sep 05 #Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 #Javascript
You might like
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
JS模板实现方法
2013/04/03 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
市场营销工作计划书
2014/05/06 职场文书
优秀班组长事迹
2014/05/31 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
中秋节慰问信
2015/02/15 职场文书
计划生育个人总结
2015/03/02 职场文书
工商局个人工作总结
2015/03/03 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
python 镜像环境搭建总结
2022/09/23 Python