系列目录html
文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,可是有回传,尚未进度条提示。此次咱们演示利用swfupload多文件上传,项目上文件上传是比不可少的,你们这个内心都知道。主要提供给源码说明及下载web
最终效果图:浏览器
SWFUpload的特色:缓存
一、用flash进行上传,页面无刷新,且可自定义Flash按钮的样式;服务器
二、能够在浏览器端就对要上传的文件进行限制;asp.net
三、容许一次上传多个文件,但会有一个上传队列,队列里文件的上传是逐个进行的,服务器端接收文件时跟普通的表单上传文件是同样的;dom
四、提供了丰富的事件接口供开发者使用;函数
SWFUpload的文件上传流程是这样的:post
一、引入相应的js文件字体
二、实例化SWFUpload对象,传入一个配置参数对象进行各方面的配置。
三、点击SWFUpload提供的Flash按钮,弹出文件选取窗口选择要上传的文件;
四、文件选取完成后符合规定的文件会被添加到上传的队列里;
五、调用startUpload方法让队列里文件开始上传;
六、文件上传过程当中会触发相应的事件,开发者利用这些事件来更新ui、处理错误、发出提示等等;
SWFUpload包括三部分的内容:SWFUpload.js、swfupload.swf、初始化配置参数及各类事件处理函数。因此首先在页面引入SWFUpload.js
其实实现一个文件上传是很简单的,可是要实现一个继承了可配置有水印有缩略图的图片上传功能仍是很是繁琐的.
配置参数对象中的经常使用属性及说明
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
upload_url | String | 处理上传文件的服务器端页面的url地址,能够是绝对地址,也能够是相对地址,当为相对地址时相对的是当前代码所在的文档地址 | |
preserve_relative_urls | Boolean | false | 若是为false则SWFUpload会把swfupload.swf用到的相对地址转换为绝对地址,以达到更好的兼容性 |
file_post_name | String | Filedata | 至关于用普通的文件域上传文件时的name属性,服务器端接收页面经过该名称来获取上传的文件 |
post_params | Object(直接量) | 一个对象直接量,里面的键/值对会随着每个文件一块儿上传,文件上传要附加一些信息时颇有用 | |
use_query_string | Boolean | false | 为false时,post_params属性定义的参数会以post方式上传;为true时,则会以get方式上传(即参数会以查询字符串的形式附加到url后面) |
file_types | String | 该属性指定了容许上传的文件类型,当有多个类型时使用分号隔开,好比:*.jpg;*.png ,容许全部类型时请使用 *.* | |
file_types_description | String | 指定在文件选取窗口中显示的文件类型描述,起一个提示和说明的做用吧 | |
file_size_limit | String | 指定要上传的文件的最大致积,能够带单位,合法的单位有:B、KB、MB、GB,若是省略了单位,则默认为KB。该属性为0时,表示不限制文件的大小。 | |
file_upload_limit | Number | 指定最多能上传多少个文件,当上传成功的文件数量达到了这个最大值后,就不能再上传文件了,也不能往上传队列里添加文件了。把该属性设为0时表示不限制文件的上传数量。 | |
file_queue_limit | Number | 指定文件上传队列里最多能同时存放多少个文件。当超过了这个数目后只有当队列里有文件上传成功、上传出错或被取消上传后,等同数量的其余文件才能够被添加进来。当file_upload_limit的数值或者剩余的能上传的文件数量小于file_queue_limit时,则取那个更小的值 | |
flash_url | String | swfupload.swf文件的绝对或相对地址,相对地址是指相对于当前的页面地址。实例化swfupload后,就不能再改变该属性的值了。 | |
prevent_swf_caching | Boolean | 为true时会加一个随机数在swfupload.swf地址的后面,以阻止flash影片被缓存,这是为了防止某些版本的IE浏览器在读取缓存的falsh影片时出现的bug | |
button_placeholder_id | String | 指定一个dom元素的id,该dom元素在swfupload实例化后会被Flash按钮代替,这个dom元素至关于一个占位符 | |
button_placeholder | DOMElement | 指定一个dom元素,该dom元素在swfupload实例化后会被Flash按钮代替,这个dom元素至关于一个占位符。当button_placeholder_id与button_placeholder都存在时,以button_placeholder_id为优先 | |
button_image_url | String | 指定Flash按钮的背景图片,相对地址或绝对地址均可以。该地址会受到preserve_relative_urls属性的影响,听从与upload_url同样的规则。 该背景图片必须是一个sprite图片,从上到下包含了Flash按钮的正常、鼠标悬停、按下、禁用这四种状态。所以该图片的高度应该是Flash按钮高度的四倍 |
|
button_width | Number | 指定Flash按钮的宽度 | |
button_height | Number | 指定Flash按钮的高度,应该为button_image_url所指定的按钮背景图片高度的1/4 | |
button_text | String | 指定Flash按钮上的文字,也能够是html代码 | |
button_text_style | String | Flash按钮上的文字的样式,使用方法见示例 | |
button_text_top_padding | Number | 指定Flash按钮顶部的内边距,可以使用负值 | |
button_text_left_padding | Number | 指定Flash按钮左边的内边距,可以使用负值 | |
button_disabled | Boolean | false | 为true时Flash按钮将变为禁用状态,点击也不会触发任何行为 |
button_cursor | 指定鼠标悬停在Flash按钮上时的光标样式,可用值为SWFUpload.CURSOR里定义的常量 | ||
button_window_mode | 指定Flash按钮的WMODE属性,可用值为SWFUpload.WINDOW_MODE里定义的常量 | ||
file_dialog_start_handler | Function | fileDialogStart事件侦听函数 | |
file_queued_handler | Function | fileQueued事件侦听函数 | |
file_queue_error_handler | Function | fileQueueError事件侦听函数 | |
file_dialog_complete_handler | Function | fileDialogComplete事件侦听函数 | |
upload_start_handler | Function | uploadStart事件侦听函数 | |
upload_progress_handler | Function | uploadProgress事件侦听函数 | |
upload_error_handler | Function | uploadError事件侦听函数 | |
upload_success_handler | Function | uploadSuccess事件侦听函数 | |
upload_complete_handler | Function | 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; }//容许的扩展名 }
下载例子源码 VS2012+MVC4
https://yunpan.cn/cZVeSJ33XSHKZ 提取码 0fc2