SWFObject文件上传使用记录
SWFObject文件上传使用方法记录,该插件使用起来相当强大也很灵活,与uploadify各有千秋。
值得一说的是,如果要设置button_image_url这个参数,该参数是按钮的背景图,但是一定要是4张等高纵向并列,如下图。

设置该参数虽然能达到修饰背景的效果,但是你会发现,flash在加载该图片的时候是有延迟的,所以呈现出来的效果就是,闪一下才能出来。
要解决这个问题,就只能绕道而行,放弃使用改参数。我们将插件的容器父窗体进行样式修饰,达到想要的结果,然后将插件的flash设置好宽高,重要的一点就是要设置flash为透明的。
button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT
以下为示例代码~~~以及说明注释,详细参数还是去找度娘吧,网上各篇文章略有差异。
<script type="text/javascript">
var fujians = [];
var fileid = 0;
var queudid = "";
var openfujian = 0; //文件选择窗口关闭事件处理
//如果有文件成功选择并添加到上传队列,则自动上传
function fileDialogComplete(selectedNum, queuedNum) {
if (queuedNum > 0) {//选择并添加到上传队列的文件数大于0
openfujian = queuedNum;
this.startUpload();//开始上传
this.setButtonDisabled(true);//禁用上传按钮
OpenDialog('<div id="fujianbox" style="overflow-y: scroll;height: 180px;"></div>', '上传进度', 285, 225);
}
}
//上传过程事件处理
//用来动态显示文件上传进度
function uploadProgress(file, curBytes, totalBytes) {
var f = file;
var c = curBytes;
var t = totalBytes;
var w = 235 * (curBytes / totalBytes);
if ($("#fujianbox")) {
if (queudid != f.id) {
queudid = f.id;
//操作
} else {
$("#queudid" + f.id).css("width", w + "px");
$("#baifenbi" + f.id).html("("+(parseInt((curBytes / totalBytes) * 100) + "%")+")");
}
}
}
//上传过程中出错
function uploadError(file, errCode, msg) {
openfujian--;
}
//上传成功
function uploadSuccess(file, data) {
var name = file.name;
var size = file.size;
var type = file.type;
var id = file.id;
var filestatus = file.filestatus;
var dataid = data;
if (fileid == 0) {
$("#bbsfiles").append("已上传附件:");
}
if (name.length <= 18) {
name = name.substr(0, 18);
} else {
name = name.substr(0, 15) + '...';
}
if (size > 1024 * 1024) {
size = (((size / 1024 / 1024).toFixed(2))) + 'MB';
} else {
size = (Math.round(size / 1024)) + 'KB';
}
//操作 fileid++; //alert(file,data);
}
//上传完成,无论上传过程中出错还是上传成功,都会触发该事件,并且在那两个事件后被触发
function uploadComplete(file) {
openfujian--;
if (openfujian <= 0) {
this.setButtonDisabled(false);//恢复上传按钮
hideDiv('messagebox_win');
}
this.startUpload();//开始上传
}
function cancelUploads(id) {
aswfu.cancelUpload(id);
}
var aswfuOption = {//swfupload选项
upload_url: "http://www.huhangfei.com.cn/bbsupload/fileupasp2015.asp?CookieID=@CookieID&swfupuser=@userinfo.UserName", //接收上传的服务端url
flash_url: "http://bbs.huhangfei.com.cn/images/swfupload2015215.swf",//swfupload压缩包解压后swfupload.swf的url
button_placeholder_id: "fl",//上传按钮占位符的id
file_size_limit: "20MB",//用户可以选择的文件大小,有效的单位有B、KB、MB、GB,若无单位默认为KB
prevent_swf_caching:false,
button_width: 89, //按钮宽度
button_height: 34, //按钮高度
button_text: '',//按钮文字
button_text_style: '',//按钮文字样式
button_text_top_padding: 6,//文字距按钮顶部距离
button_text_left_padding: 65,//文字距离按钮左边距离
button_image_url: "",//"http://simg.huhangfei.com.cn/bbs/revision/images/fj.jpg",//按钮背景
button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT,
//debug: true,//开启调试模式
file_dialog_complete_handler: fileDialogComplete,//文件选择对话框关闭
upload_progress_handler: uploadProgress,//文件上传中
upload_error_handler: uploadError,//文件上传出错
upload_success_handler: uploadSuccess,//文件上传成功
upload_complete_handler: uploadComplete,//文件上传完成,在upload_error_handler或者upload_success_handler之后触发
//这个地方在windows上有个bug,官方如是说:在window平台下,那么服务端的处理程序在处理完文件存储以后,必须返回一个非空值,否则此事件不会被触发,随后的uploadComplete事件也无法执行。
//post_params: { "CookieID": "@CookieID", "swfupuser": "@userinfo.UserName" },
file_types: "*.doc;*.docx;*.txt;*.zip;*.rar;*.caj;*.pdf;*.vip;",
file_types_description: "['doc','docx','txt','zip','rar','caj','pdf','vip']"
}
var aswfu = new SWFUpload(aswfuOption);
function DeleteFujian(id) {
$("#fujian" + id).remove();
BBsPost.deleteFujian(id);
fileid--;
if (fileid == 0) {
$("#bbsfiles").html("");
}
}
</script>
SWFObject文件上传使用记录的更多相关文章
- springboot文件上传问题记录
最近做项目需要开发一个通过excel表格导入数据的功能,上传接口写好调试的时候遇到几个问题,记录一下. 报错1: 15:50:57.586 [[1;33mhttp-nio-8763-exec-8 [0 ...
- JavaScript,php文件上传简单实现
非ajax,非iframe,最原始使用file控件的文件上传,记录过程备忘.(同步,页面刷新) 实现目标,能够将文件上传到指定位置. 客户端用input的file控件: <form action ...
- jquery文件上传控件 Uploadify 问题记录
Uploadify v3.2.1 首先引用下面的文件 <!--上传控件 uploadify--> <script type="text/javascript" s ...
- 记录Tomcat8.5文件上传,文件权限无法访问
部署一个服务,文件上传本地可以,但是在Linux上通过docker发布到容器上,文件上传后,没有权限访问,查了好久才发现是Tomcat8.5的问题,低版本没有这个问题,现记录下. tomcat/bin ...
- hadoop学习记录--hdfs文件上传过程源码解析
本节并不大算为大家讲接什么是hadoop,或者hadoop的基础知识因为这些知识在网上有很多详细的介绍,在这里想说的是关于hdfs的相关内容.或许大家都知道hdfs是hadoop底层存储模块,专门用于 ...
- 使用bootstrap fileinput多文件拖拽上传的记录
今天琢磨文件上传,刚好看到bootstrap 我就搜了一下,刚刚能满足需求,使用上手也很快,使用完还是记录下来. 1.首先我们下载插件包,可以用nuget搜索bootstrap-fileinput 也 ...
- JavaWeb学习记录(二十三)——文件上传与下载
一.导入jar包
- springMVC学习记录3-拦截器和文件上传
拦截器和文件上传算是springmvc中比较高级一点的内容了吧,让我们一起看一下. 下面先说说拦截器.拦截器和过滤器有点像,都可以在请求被处理之前和请求被处理之到做一些额外的操作. 1. 实现Hand ...
- bootstrap File Input 多文件上传插件使用记录(二)删除原文件
在上一篇文章中,主要介绍了file input插件的初始化和多文件同步上传到服务器的相关配置等.这篇主要介绍file input插件的编辑等. 使用场景: 在后台管理框架中,一条数据中包含不固定的多张 ...
随机推荐
- Static Class (静态类)
一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...
- Google Calendar(日历)设置农历生日提醒
Generate birthday dates base on lunar birthdays for google calendar import Can be used for notifying ...
- linux dd命令测试U盘读写速度
1. dd命令简述: if=输入文件, of=输出文件, ibs=一次读取字节数, obs=一次写入字节数, bs=设置一次读取写入的字节数, skip=跳过的bs数, count=拷贝的块数 2. ...
- JavaScript 的setAttribute兼容性解决
setAttribute各个浏览器都支持,但在IE7以下版本中,有些属性值还是有差异的,比如 obj.setAttribute("class","classname&qu ...
- jquery cookies(2)用法实现
example $.cookie('name', ‘value'); 设置cookie的值,把name变量的值设为value example $.cookie('name', ‘value', {ex ...
- jquery animate函数实现
jquery animate 函数 实现动画效果 参数一 比如高度宽度 之类的:'-=50' 参数二 速度之类 <html xmlns="http://www.w3.org/1999/ ...
- OC & java 对比
Objective-C的语法对比(和Java的对比) Objective-C的语法对比(和Java的对比) 1.函数的对比 例子: helloworld方法 Java 语言: publi ...
- 怎样在Swift中使用CocoaPods-b
最近关于CocoaPods有很多的议论.你可能从别的开发者那里听到过,或者在Github的目录中看到过.如果你之前从来没有用过,你可能会问,"CocoaPods到底是什么?" 它不 ...
- springmvc参数类型转换三种方式
SpringMVC绑定参数之类型转换有三种方式: 1. 实体类中加日期格式化注解 @DateTimeFormat(pattern="yyyy-MM-dd hh:MM&quo ...
- struts2整合spring的思路
struts2整合spring有有两种策略: >sping容器负责管理控制器Action,并利用依赖注入为控制器注入业务逻辑组件. >利用spring的自动装配,Action将自动会从Sp ...