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 相关文章推荐
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
javascript判断机器是否联网的2种方法
Aug 09 Javascript
使用jquery获取网页中图片高度的两种方法
Sep 26 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
jquery动态添加option示例
Dec 30 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
AngularJS基础 ng-if 指令用法
Aug 01 Javascript
微信小程序实现弹出层效果
May 26 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
Aug 12 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
Sep 11 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
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
python爬虫常用的模块分析
2014/08/29 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
python如何实现DES加密
2020/09/21 Python
python实现计算器简易版
2020/12/17 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
医学生职业生涯规划书范文
2014/03/13 职场文书
公司周年庆活动方案
2014/08/25 职场文书
出纳工作检讨书
2014/10/18 职场文书
初二学生评语大全
2014/12/26 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
教师读书笔记
2015/06/29 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书