当前位置: 首页 > news >正文

ASP.NET MVC5+EF6+EasyUI 后台管理系统(32)-swfupload多文件上传[附源码]

文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示。这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家这个心里都知道。主要提供给源码说明及下载

最终效果图:

SWFUpload的特点:

1、用flash进行上传,页面无刷新,且可自定义Flash按钮的样式;

2、可以在浏览器端就对要上传的文件进行限制;

3、允许一次上传多个文件,但会有一个上传队列,队列里文件的上传是逐个进行的,服务器端接收文件时跟普通的表单上传文件是一样的;

4、提供了丰富的事件接口供开发者使用;

SWFUpload的文件上传流程是这样的:

1、引入相应的js文件

2、实例化SWFUpload对象,传入一个配置参数对象进行各方面的配置。

3、点击SWFUpload提供的Flash按钮,弹出文件选取窗口选择要上传的文件;

4、文件选取完成后符合规定的文件会被添加到上传的队列里;

5、调用startUpload方法让队列里文件开始上传;

6、文件上传过程中会触发相应的事件,开发者利用这些事件来更新ui、处理错误、发出提示等等;

SWFUpload包括三部分的内容:SWFUpload.js、swfupload.swf、初始化配置参数及各种事件处理函数。所以首先在页面引入SWFUpload.js

其实实现一个文件上传是很简单的,但是要实现一个继承了可配置有水印有缩略图的图片上传功能还是非常繁琐的.

配置参数对象中的常用属性及说明

属性类型默认值描述
upload_urlString 处理上传文件的服务器端页面的url地址,可以是绝对地址,也可以是相对地址,当为相对地址时相对的是当前代码所在的文档地址
preserve_relative_urlsBooleanfalse如果为false则SWFUpload会把swfupload.swf用到的相对地址转换为绝对地址,以达到更好的兼容性
file_post_nameStringFiledata相当于用普通的文件域上传文件时的name属性,服务器端接收页面通过该名称来获取上传的文件
post_paramsObject(直接量) 一个对象直接量,里面的键/值对会随着每一个文件一起上传,文件上传要附加一些信息时很有用
use_query_stringBooleanfalse为false时,post_params属性定义的参数会以post方式上传;为true时,则会以get方式上传(即参数会以查询字符串的形式附加到url后面)
file_typesString 该属性指定了允许上传的文件类型,当有多个类型时使用分号隔开,比如:*.jpg;*.png ,允许所有类型时请使用 *.*
file_types_descriptionString 指定在文件选取窗口中显示的文件类型描述,起一个提示和说明的作用吧
file_size_limitString 指定要上传的文件的最大体积,可以带单位,合法的单位有:B、KB、MB、GB,如果省略了单位,则默认为KB。该属性为0时,表示不限制文件的大小。
file_upload_limitNumber 指定最多能上传多少个文件,当上传成功的文件数量达到了这个最大值后,就不能再上传文件了,也不能往上传队列里添加文件了。把该属性设为0时表示不限制文件的上传数量。
file_queue_limitNumber 指定文件上传队列里最多能同时存放多少个文件。当超过了这个数目后只有当队列里有文件上传成功、上传出错或被取消上传后,等同数量的其他文件才可以被添加进来。当file_upload_limit的数值或者剩余的能上传的文件数量小于file_queue_limit时,则取那个更小的值
flash_urlString swfupload.swf文件的绝对或相对地址,相对地址是指相对于当前的页面地址。实例化swfupload后,就不能再改变该属性的值了。
prevent_swf_cachingBoolean 为true时会加一个随机数在swfupload.swf地址的后面,以阻止flash影片被缓存,这是为了防止某些版本的IE浏览器在读取缓存的falsh影片时出现的bug
button_placeholder_idString 指定一个dom元素的id,该dom元素在swfupload实例化后会被Flash按钮代替,这个dom元素相当于一个占位符
button_placeholderDOMElement 指定一个dom元素,该dom元素在swfupload实例化后会被Flash按钮代替,这个dom元素相当于一个占位符。当button_placeholder_id与button_placeholder都存在时,以button_placeholder_id为优先
button_image_urlString 指定Flash按钮的背景图片,相对地址或绝对地址都可以。该地址会受到preserve_relative_urls属性的影响,遵从与upload_url一样的规则。
该背景图片必须是一个sprite图片,从上到下包含了Flash按钮的正常、鼠标悬停、按下、禁用这四种状态。因此该图片的高度应该是Flash按钮高度的四倍
button_widthNumber 指定Flash按钮的宽度
button_heightNumber 指定Flash按钮的高度,应该为button_image_url所指定的按钮背景图片高度的1/4
button_textString 指定Flash按钮上的文字,也可以是html代码
button_text_styleString Flash按钮上的文字的样式,使用方法见示例
button_text_top_paddingNumber 指定Flash按钮顶部的内边距,可使用负值
button_text_left_paddingNumber 指定Flash按钮左边的内边距,可使用负值
button_disabledBooleanfalse为true时Flash按钮将变为禁用状态,点击也不会触发任何行为
button_cursor  指定鼠标悬停在Flash按钮上时的光标样式,可用值为SWFUpload.CURSOR里定义的常量
button_window_mode  指定Flash按钮的WMODE属性,可用值为SWFUpload.WINDOW_MODE里定义的常量
file_dialog_start_handlerFunction fileDialogStart事件侦听函数
file_queued_handlerFunction fileQueued事件侦听函数
file_queue_error_handlerFunction fileQueueError事件侦听函数
file_dialog_complete_handlerFunction fileDialogComplete事件侦听函数
upload_start_handlerFunction uploadStart事件侦听函数
upload_progress_handlerFunction uploadProgress事件侦听函数
upload_error_handlerFunction uploadError事件侦听函数
upload_success_handlerFunction uploadSuccess事件侦听函数
upload_complete_handlerFunction uploadComplete事件侦听函数

源码说明:

复制代码
 public class siteconfig
    { 
        public int attachfilesize{ get; set;}//附件文件大小
        public int attachimgsize { get; set; }//附件图片大小
        public int attachimgmaxheight{ get; set;}//附件图片最大高度
        public int attachimgmaxwidth { get; set; }//附件图片最大宽度
        public int thumbnailwidth { get; set; }//缩略图宽度
        public int thumbnailheight { get; set; }//缩略图宽度
        public int watermarktype { get; set; }//水印类型1文件2图片
        public string watermarktext { get; set; }//水印文字
        public int watermarkimgquality { get; set; }//水印质量
        public string watermarkpic { get; set; }//水印图片名称
        public string webpath { get; set; }//web目录
        public string attachpath { get; set; }//上传文件夹
        public int watermarkposition { get;set;}//水印位置
        public string watermarkfont { get; set; }//水印字体
        public int watermarkfontsize { get; set; }//水印字体大小
        public int watermarktransparency { get; set; }//透明度
        public int attachsave { get; set; }//保存的类型按年月/日存入不同的文件夹/按年月日每天一个文件夹
        public string attachextension { get; set; }//允许的扩展名
    }
复制代码

 本文转自ymnets博客园博客,原文链接:http://www.cnblogs.com/ymnets/p/3604471.html,如需转载请自行联系原作者

相关文章:

  • hihocoder 1457(后缀自动机+拓扑排序)
  • Gnocchi+Aodh服务简析
  • 给wordpress导航菜单添加个性图标
  • BZOJ 3170 [Tjoi 2013]松鼠聚会
  • 面向云数据中心的现代数据管理架构
  • 分布式光伏发电及配电网的保护机制探究
  • 光伏组件价格跳水,企业的未来何去何从?
  • 从智能家居的发展看对讲企业的定位
  • 六个对CRM数据分析至关重要的特性
  • Tego与Smartrac合作开发RFID解决方案用于复杂的工业环境
  • 交通部回应共享单车新政:实名制如何确保信息安全
  • Sublime字体设置
  • CS安装卸载测试总结
  • 联发科将推Helio P35:10nm工艺 千元机福音
  • Linux中的硬链接与软链接
  • ComponentOne 2017 V2版本正式发布
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Github访问慢解决办法
  • JavaScript设计模式系列一:工厂模式
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • SQLServer之索引简介
  • 第2章 网络文档
  • 欢迎参加第二届中国游戏开发者大会
  • 机器学习学习笔记一
  • 简单易用的leetcode开发测试工具(npm)
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 如何在 Tornado 中实现 Middleware
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 写代码的正确姿势
  • 在electron中实现跨域请求,无需更改服务器端设置
  • nb
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 数据结构
  • #android不同版本废弃api,新api。
  • #git 撤消对文件的更改
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (4)Elastix图像配准:3D图像
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)Linux——Linux常用指令
  • (二)PySpark3:SparkSQL编程
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)memcache、redis缓存
  • (转)用.Net的File控件上传文件的解决方案
  • .net 反编译_.net反编译的相关问题
  • .NET 分布式技术比较
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET关于 跳过SSL中遇到的问题
  • [100天算法】-二叉树剪枝(day 48)