asp.net silverlight批量上传控件实现方法

    /// <summary>
    /// 文件的状态
    /// </summary>
    internal enum filestatus
    {
        /// <summary>
        /// 准备就绪,等待上传
        /// </summary>
        ready = 0,
        /// <summary>
        /// 正在上传中
        /// </summary>
        uploading = 1,
        /// <summary>
        /// 上传成功
        /// </summary>
        success = 2,
        /// <summary>
        /// 上传中出现异常
        /// </summary>
        error = 3,
        /// <summary>
        /// 上传操作被用户中止
        /// </summary>
        cancel = 4,
        /// <summary>
        /// 已被用户删除
        /// </summary>
        delete = 5
    }

原理
用silverlight实现多选批量上传,利用与网页特效的交互来控制显示,并将其封装成asp教程.net服务端控件。
总体结构

首先用户进入页面,执行批量上传控件的服务端代码,生成html代码(包括silverlight的html代码,这样就完成了
对silverlight的初始化)。用户在silverlight上选择完文件,开始上传,这时用silverlight去访问当前页面,在地址
上加上标示变量,来告诉服务端这是一个上传请求;在批量上传控件的服务端判断是否上传请求,如果是则进行文
件操作,完成后显示上传结果(成功或者出现异常),silverlight端获取后决定下一步动作(传输当前文件的剩余部
分、传输下一个文件、传输结束等动作),同时调用javascript方法更新页面的显示信息,同时也可调用javascript
方法来postback回传触发服务端事件。
界面

控件最开始只会显示一个“上传”按钮,点击后显示浮动层,点击“选择文件”后弹出文件选择框,支持多选,选择完
毕点击“上传文件”进行上传,上传完毕后点击“确定”进行回传。

silverlight端的实现

silverlight在html显示其实就是一个<object></object>,结构类似:

<object id='obj' data='data:application/x-silverlight-2,' type='application/x-silverlight-2' >

<param name='source'value='abc.xap' />           

<param name='background' value='white' />           

<param name='minruntimeversion' value='3.0' />

<param name='autoupgrade' value='false' />

<param name='windowless' value='true'/>

<param name='initparams' value='a=1,b=2' />

</object>

其中source表示silverlight编译生成的xap文件的路径;minruntimeversion表示客户端的silverlight最低运行版本,这里设置成

版本3.0,低于3.0的均不能正常运行该批量上传控件;autoupgrade表示是否打开自动更新,这里关闭自动更新;windowless

 表示是否可以由其它html元素遮住silverlight,这里设置成可以被遮住;initparams表示自定义参数,可以有多个,以逗

号隔开,该控件中用到的参数有:

clientid:批量上传控件的由 asp.net教程 生成的服务器控件标识符,用于唯一标识用。

filter:文件名筛选器字符串,形如"图片文件 (*.gif;*.jpg)|*.gif;*.jpg"

filemaxcount:最大能上传的文件个数,为空表示不限

filemaxlength:单个文件最大长度,单位字节,为空表示不限 
showsubmit:是否显示“确定”按钮 
datapacketsize:上传时每次发送的数据包大小,单位kb
subdirectoryname:上传的文件在临时文件夹中存储时,所在的子文件夹名
 

xaml文件比较简单,如下所示: 

<grid width="240" background="#f0f8f0" layoutupdated="grid_layoutupdated"> 
        <button content="选择文件" height="23" horizontalalignment="left" x:name="btnchoose" fontfamily="arial,simsun"
fontsize="12" verticalalignment="top" width="75" margin="2,3,0,0" click="btnchoose_click" /> 
        <button content="上传文件" height="23" horizontalalignment="left" x:name="btnupload" fontfamily="arial,simsun"
fontsize="12" verticalalignment="top" width="75" margin="83,3,0,0" click="btnupload_click"/> 
        <button content="确 定" height="23" horizontalalignment="left" x:name="btnok" fontfamily="arial,simsun"
fontsize="12" verticalalignment="top" width="75" margin="164,3,0,0" click="btnok_click"/> 
    </grid> 

就是三个按钮,分别为“选择文件”“上传文件”“确定”。

时间: 2024-09-10 07:01:00

asp.net silverlight批量上传控件实现方法的相关文章

asp.net 2.0 上传控件的使用

asp.net|控件|上传|上传控件 试用了一下asp.net 2.0的上传控件,还是挺方便的. 分享代码如下:     protected void Button1_Click(object sender, EventArgs e)    {        try        {            判断文件大小#region 判断文件大小            int intFileLength = this.FileUpload1.PostedFile.ContentLength;  

ASP.NET多文件上传控件Uploadify的使用方法_实用技巧

对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Uploadify是通过轮训的方式去调用我们的后台upload程序的,所以,对于多文件上传来说,也没什么稀奇的. 下面是文件上传后的缩略图如下 列表的组装使用JS模板,这样对于复杂的HTML结构来说,可以减少拼写错误的出现,关闭是将LI元素从UI元素移除,最后提交时,从UI里检查LI元素,然后对它进行组装,并进

asp.net 2.0上传控件的使用

分享代码如下: protected void Button1_Click(object sender, EventArgs e) { try { 判断文件大小#region 判断文件大小 int intFileLength = this.FileUpload1.PostedFile.ContentLength; if (intFileLength > 50000) { this.Label1.Text = "文件大于50k,不能上传"; return; } #endregion

.NET的file文件上传控件使用方法 修改web.config文件上传大文件_实用技巧

修改Webcong文件: 以下为引用的内容: 复制代码 代码如下: <system.web> <httpRuntime maxRequestLength="40690" useFullyQualifiedRedirectUrl="true" executionTimeout="6000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8&q

asp.net ajax 和 asp.net 2.0中的fileupload合力打造无刷新文件上传控件

ajax|asp.net|控件|上传|上传控件|刷新|无刷新 在做一个信息管理平台时用到了图片,就像做一个上传的正好用的是asp.net ajax就试着做了一个不很好 自定义用户控件文件 PicUpload.ascx 1<%@ control language="C#" autoeventwireup="true" inherits="Admin_PicUpload, App_Web_mboefw14" %>2 <asp:Ima

asp..net2.0文档上传 的一个方法(一个上传控件,上传多个文档 )

控件|上传|上传控件  前台 :   <table style="width:100%">         <tr>             <td style="width:15%">                 类型名称:</td>             <td>                <asp:DropDownList ID="TypeDDL" runat=&q

asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件

问题描述 asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件我现在要上传文件,但是在点击浏览的时候我想要打开一个指定的目录,然后在这个目录中选择文件..用什么方法能够实现呢?请各位大侠帮忙呀!!!!!!!!!??????????????????????????谢谢各位!!!!!!!! 解决方案 解决方案二:属于客户端程序,安全考虑的话怕不可行解决方案三:可以,将所选目录文件列出就行了,用常用的IO操作就能实现CSD

ASP.NET文件上传控件Uploadify的使用方法_实用技巧

对于文件上传来说,有很多种实现方式,如传统的表单方式,现在流行的flash方式,甚至还有纯JS方式,之所以有这些方式来实现文件上传,我想主要原因是因为,传统的上传对于大文件支持不够,因为它是单线程同步机制,当大文件通过HTTP方式发送到服务端时,对于服务端站点的主线程影响比较大,会产生阻塞,所以,现在很多上传控制都是异步,多线程的方式去实现的. 今天来介绍一个文件上传控制,它就是Uploadify,它应该是flash的异步上传工具,对于大文件支持还不错,所以,我选择了它. 相关API介绍 upl

上传图片-asp.net图片批量上传问题

问题描述 asp.net图片批量上传问题 asp.net +swfupload上传且可以编辑上传的图片类似qq空间上传图片 解决方案 图片编辑用的是acx控件. swfupload只复制上传..编辑你要另外实现