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 相关文章推荐
js仿百度有啊通栏展示效果实现代码
May 28 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
图片Slider 带左右按钮的js示例
Aug 30 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
Oct 22 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
js基础之DOM中document对象的常用属性方法详解
Oct 28 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 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网站提速三大“软”招
2006/10/09 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
php自定义hash函数实例
2015/05/05 PHP
php文件读取方法实例分析
2015/06/20 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
获取body标签的两种方法
2011/10/13 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
javascript常用方法汇总
2014/12/02 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python常见文件操作的函数示例代码
2011/11/15 Python
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python操作MySQL简单实现方法
2015/01/26 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Django logging配置及使用详解
2019/07/23 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
工作表扬信的范文
2014/01/10 职场文书
活动邀请函范文
2014/01/19 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
给朋友的道歉短信
2015/05/12 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书