热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WebUploader

WebUploader批量上传的使用WebUploader是由BaiduWebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件API:https

WebUploader批量上传的使用
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件
API : https://fex.baidu.com/webuploader/doc/index.html

以下是简单使用-上代码 ——————

页面:

<div canwritenull="yes" class="split clearfix fileAtt" id="fileAttid_8">
<p class="text_essas">
<span class="fileAttClass9" spn="y">上传附件名称:</span>
<input type="hidden" value="fileid_8" name="fileid_8" style="background-color: rgb(255, 255, 255);">
<i type="button" disabled="disabled" name="fileid_8" id="fileid_8" class="layui-btn layui-btn-normal filebutton"></i>
</p>
<div class="layui-upload-list" id="demoDiv_fileid_8" style="display: none;">
<table class="layui-table">
<thead>
<tr>
<th>文件名</th>
<th>大小</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="demoList_fileid_8"></tbody>
</table>
</div>
</div>
<div canwritenull="yes" class="split clearfix fileAtt" id="fileAttid_9">
<p class="text_essas">
<span class="fileAttClass9" spn="y">上传附件名称:</span>
<input type="hidden" value="fileid_9" name="fileid_9" style="background-color: rgb(255, 255, 255);">
<i type="button" disabled="disabled" name="fileid_9" id="fileid_9" class="layui-btn layui-btn-normal filebutton"></i>
</p>
<div class="layui-upload-list" id="demoDiv_fileid_9" style="display: none;">
<table class="layui-table">
<thead>
<tr>
<th>文件名</th>
<th>大小</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="demoList_fileid_9"></tbody>
</table>
</div>
</div>

<link rel="stylesheet" type="text/css" href="${base}/util/webuploader/webuploader.css">
<script type="text/Javascript" src="${base}/util/js/jquery.min.js"></script>
<script type="text/Javascript" charset="utf-8" src="${base}/util/webuploader/webuploader.min.js"></script>
<#-- 多按钮多文件上传 -->
<script>
var uploader = WebUploader.create({
swf: '${base}/util/webuploader/Uploader.swf',
duplicate: true,
auto: true, // 选完文件后,是否自动上传
server: "${base}/api/column/upload_auditFile.action", // 文件接收服务端
pick: ".filebutton", // 选择文件的按钮。可选
fileVal : "file",
//线程数
threads: 10,
<#--// 只允许选择图片文件。
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
},
//单个文件大小限制
fileSingleSizeLimit: 2000,
//上传文件数量限制
fileNumLimit:10,
//上传前不压缩
compress:false,-->
});
//当文件被加入队列之前触发
uploader.on('beforeFileQueued', function(file) {
var fileClass = file.source._refer[0].id;
var uuid1 = uuid(32, 16);
var demoListView = $("#demoList_"+fileClass);
var demoDivView = $("#demoDiv_"+fileClass);
var fileType = file.name.substr(file.name.indexOf(".")+1);
var tr = $([''
,''+ file.name +''
,''+ (file.size/1014).toFixed(1) +'kb'
,'已上传'
,''
,''
,'+uuid1+"'"+',this,'+"'"+fileType+"'"+')">删除'
,''
,''].join(''));

demoListView.append(tr);
demoDivView.css("display","inline");
<#--
if('${CmsId}'!=''){
log('${CmsId}')
savefile('${channelId}','${CmsId}');
}
-->
});
//当一批文件添加进队列以后触发(用来保存文件信息)
uploader.on('filesQueued', function(file) {
if('${CmsId}'!=''){
savefile('${channelId}','${CmsId}');
}
});
<#--
//当有一批文件加载进队列时触发事件
uploader.on("fileQueued", webFilesQueued);
//单个文件开始上传
uploader.on("uploadStart", uploadStart);
//单个文件上传成功
uploader.on("uploadSuccess", uploadSuccess);
//单个文件上传过程中
uploader.on("uploadProgress", uploadProgress);
//所有文件上传结束
uploader.on("uploadFinished", uploadComplete);
//图片校验不通过时
uploader.on("error", webFileQueueError);
//上传出错时
uploader.on("uploadError",webUploadError);
-->//在这里用的是我之前文件上传文章相类似的方法 https://blog.csdn.net/qq_36910987/article/details/88895839
//<#-- 获取所有上传文件ID,name -->
function getfileId(){
var djs = [];
$("input[name='fileuuid']").each(function(){
var id = $(this).val();
var name = $(this).attr("fliename");
var label = $(this).attr("fileClass");
var fileSize = $(this).attr("fileSize");
djs.push({ 'name' : id,'value' : name,'label':label,'filesize':fileSize});
log(djs)
});
return djs;
}
//<#-- 保存文件信息 approval:审批流程ID -->
function savefile(channelId,CmsId){
var djs = getfileId();
$.ajax({
type:'post',
url : get_web_url()+'/api/column/savefile.action',
data : { "djs":JSON.stringify(djs),"channelId":channelId,"CmsId":CmsId},
success : function(data){
resultVO.checkCode(data, function (data) {
if(data){
log(data);
}else{
log("凉凉");
}
});
},
error : function(){
layeropen('2','发生意外错误!');
}
});
}
//<#-- 删除文件 -->
function delfile (id,obj,fileType){
var conlay = layer.confirm('确定要删除文件吗?', {
btn: ['确定','取消'] //按钮
}, function(){
$.ajax({
type:'post',
url : get_web_url()+'/api/column/delfile.action',
data : { "id":id,"fileType":fileType},
success : function(data){
resultVO.checkCode(data, function (data) {
if(data){
$(obj).parent().parent().remove();
layer.close(conlay);
}else{
log("凉凉");
}
});
},
error : function(){
layeropen('2','发生意外错误!');
}
});
},function(){

});
}
</script>

JAVA

/** * 文件上传 WebUploader会循环调用该方法,所以用单文件接收 * @param file * @param request * @param response * @throws Exception */
@RequestMapping("/upload_auditFile")
public void upload_auditFile(MultipartFile file,HttpServletRequest request,HttpServletResponse response) throws Exception{
String result = columnService.upload_auditFile(file);
JSONObject obj = new JSONObject();
PrintWriter out = response.getWriter();
//obj.put("fileName", files[0].getOriginalFilename());
obj.put("result", result);
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("text/html");
out.print(obj.toString());
}
/** * 保存文件信息 * @param request * @param djs * @param channelId * @param CmsId * @return */
@RequestMapping("/savefile")
public ResultVO savefile(HttpServletRequest request,String djs,String channelId,String CmsId) {
djs = StringEscapeUtils.unescapeHtml4(djs);
List<jsonbean> arrayList = (List<jsonbean>) JSON.parseArray(djs, jsonbean.class);
return new ResultVO(columnService.savefile(arrayList, channelId, CmsId));
}

推荐阅读
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
author-avatar
请叫她秋嫦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有