SlickUpload的介绍
最近在看《ASP.NET MVC2 IN ACTION》英文版时发现里面介绍到一个在ASP.NET中上传大文件的ASP.NET控件,叫SlickUpload,软件的介绍下载和介绍网址是:http://krystalware.com/Products/SlickUpload/。
我们知道,在ASP.NET中对于上传文件可以利用FileUpload控件或者<input type="file" name="file"/>这样的方式就可以上传,但是利用这样的方式上传存在一些缺点,比如默认一次只能上传一个文件及上传的文件的大小也有限制,除此之外,利用这种方式上传不能以直观的方式显示上传的进度情况,于是有了各种各样的第三方解决方案,比如SWFUpload等。不过因为在最近的版本中ADOBE公司增强了权限控制,所以SWFUpload也有些不太灵光了,这里介绍另外一种文件上传控件SlickUpload。SlickUpload是一款共享软件,它的购买地址是http://krystalware.com/purchase/,如果公司有经常上传超大文件需求的,不妨购买。
SlickUpload的原理如下图:
可以看出它的处理流程如下:
对于请求中的每个文件SlickUpload都会调用定义好的上传文件流供应者来写文件数据,SlickUpload支持两种内置的文件处理方式和用户自定义的处理方式:
文件系统,即将文件保存到服务器文件下;
SQL,即将文件保存到SQL服务器中;
根据用户逻辑的自定义方式;
SlickUpload可以在ASP.NET WebForm和ASP.NET MVC及ASP.NET AJAX项目中运行,可以以带进度显示上传超过上G的文件。
在不同环境下最大可支持上传的文件大小:
IIS 5:最大可支持上传2 GB
IIS 6:最大支持上传4 GB
IIS 7传统模式:最大支持上传4 GB
IIS 7 集成模式:最大支持上传2 GB
VS.NET集成WebDev server环境下:最大支持2 GB
当然上面的最大支持需要在web.config文件中的<httpRuntime>节点的maxRequestLength属性。
SlickUpload的安装
1.程序集的安装
首先请将Krystalware.SlickUpload.dll拷贝到Web项目的bin目录下,这个程序集包含了SlickUpload的HttpModule模块。
2.添加SlickUpload控件到VS的控件工具箱(周公的VS版本为VS2008SP1)
步骤如下:
2.1用VS打开Web项目或者包含Web项目的解决方案。
2.2在VS上的控件箱空白处鼠标右键点击,选择“选择项”,出现如下图所示的界面:
2.3在打开的对话框中选择“浏览”,如下图所示:
找到Krystalware.SlickUpload.dll所在的位置,然后点击确定,这样就完成了将SlickUpload添加到控件箱。如下图所示:
3.在web.config中配置
3.1配置configSections节点
打开web.config文件找到configSections节点(如果没有的话请在<configuration>元素下添加),在configSections节点下添加如下内容:
添加slickUpload节点
在<configuration>元素下添加slickUpload节点,如下:
其中的location表示文件上传后的存放位置,existingAction表示如果在服务端已经存在同名文件如何处理。
system.web/httpModules节点配置
在system.web节点下添加如下内容:
如果在web.config中已经存在system.web/httpModules节点,则只需将<add ..../>部分添加到这个节点下即可。
system.web/httpHandlers节点配置
在system.web节点下添加如下内容:
如果在web.config中已经存在system.web/httpModules节点,则只需将<add ..../>部分添加到这个节点下即可。
system.web/httpRuntime节点配置
在system.web节点下添加如下内容:
以上配置表示允许最大上传1GB的文件(maxRequestLength的单位为MB),程序执行超时时间为10分钟(executionTimeout的单位为秒)。
经过如下配置之后就可以在我们的ASP.NET项目中使用SlickUpload项目了。
SlickUpload的使用
快速上手指南
下面是一个简单使用的例子,代码如下:
后台的代码如下:
运行这个页面会看到如下效果:
点击上传按钮会看到如下效果:
注意,如果上传的文件超过在web.config中配置的最大允许大小会上传失败,看到的界面如下:
如果上传成功,则会看到下面的界面:
在ASP.NET AJAX中使用SlickUpload
在ASP.NET项目中新建一个ASPX页面,代码如下:
其对应的后台代码如下:
运行这个页面之后,可以看到如下界面:
上传成功之后的界面如下:
说明:在上面的两个实例中演示了如何在ASP.NET中使用SlickUpload控件来上传大文件,并且分别演示了在普通的WebForm和ASP.NET AJAX中的应用。需要注意的是这个控件的默认文字是英文的,为了演示方便我将其转换成中文了,同时也为了照顾一些对ASP.NET还不熟悉的朋友直接上手感受这个控件,我会提供本文中的示例的Demo下载(可能在我上传后需要被网站审核才能下载,通过之后我会在这里附上链接,如果看不到链接请耐心等待)。
通过上面的例子,大家应该至少可以知道如何获取SlickUpload控件上传成功之后的文件信息,那就是利用控件的OnUploadComplete事件,其事件中的UploadStatusEventArgs参数有一个UploadedFiles属性,利用这个属性我们就能获取上传的文件的信息,获取这些信息之后我们就能在程序中操作这些信息。
此外由于篇幅的原因,在本篇我暂不介绍如何SlickUpload的一些比较复杂操作和属性,比如如何在客户端对要上传的文件类型进行验证、如果让上传的文件的名称按照我们期望的格式保存等等,请大家等待下一篇。
周公
2010-07-25
分享到:
相关推荐
在本文中,我们使用web.config文件来配置文件上传的最大值。 知识点8:使用MSDN查看文件上传的限制 在本文中,我们使用MSDN来查看文件上传的限制。MSDN是一个流行的开发文档,能够帮助我们查看文件上传的限制。在...
总的来说,通过利用C#的`System.Net`命名空间,你可以方便地在ASP.NET环境中实现FTP远程文件下载功能,为用户提供高效、安全的文件获取服务。在实际开发中,还需要考虑错误处理、性能优化以及安全性等问题,确保应用...
在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传功能。下面我们将详细探讨这个过程中的关键知识点。 首先,`jQuery.form`...
在ASP.NET Web API中处理文件上传是常见的需求,特别是当你需要允许用户通过Web界面提交文件时。本文将深入探讨如何在ASP.NET Web API中实现文件上传功能,并涉及MIME多部分类型。 首先,让我们了解MIME...
要在ASP.NET中处理超过2GB的大文件上传,我们需要对几个关键设置进行调整和优化: 1. **配置IIS限制**:IIS(Internet Information Services)作为ASP.NET应用程序的托管环境,其默认配置可能不允许上传如此大的...
在提供的资源中,"SlickUpload"是一个常用的ASP.NET大文件上传组件,它支持断点续传、进度显示等功能。"SlickUploadSource.zip"包含了该组件的源代码,可供开发者深入研究其内部实现机制。"AdvancedUploadSpike.zip...
在 ASP.NET Core 中,可以使用模型绑定上传文件。首先,需要创建一个表单,并将 enctype 设置为 multipart/form-data。然后,在控制器中,使用 List<IFormFile> 作为参数,来接收上传的文件。 知识点3: 使用 ...
在这个"asp.net + telerik大文件上传案例"中,我们将深入探讨如何利用Telerik的组件来实现这一功能。 首先,`Default.aspx`是ASP.NET应用的主要页面,它包含了用户界面元素,如Telerik的FileUpload控件,允许用户...
在处理大文件上传时,ASP.NET需要特别的处理,因为默认情况下,它对上传文件的大小有限制,通常为4MB左右。针对超大文件上传的需求,开发者通常需要采取一些策略来优化和扩展这一功能,同时加入进度条显示可以提升...
《SlickUpload大文件上传组件在ASP.NET与Ajax环境下的应用详解》 在现代Web开发中,用户对数据传输速度和交互体验的要求日益提高,尤其是处理大文件上传时。SlickUpload是一款强大的文件上传组件,它针对大文件上传...
ASP.NET AJAX 多文件上传是一种在Web应用中实现高效、用户友好的文件上传方式,它结合了ASP.NET技术和AJAX(Asynchronous JavaScript and XML)的优势,提供了异步上传功能,使得用户无需等待整个页面刷新就能完成...
【ASP.NET Web版 WebUploader大文件上传带进度条】是一个针对ASP.NET 4.0 Web应用程序的文件上传解决方案,特别适合处理大文件并提供实时的上传进度反馈。WebUploader是一款前端JavaScript库,它允许用户在浏览器端...
在 ASP.NET CORE 中,处理大文件上传是一项挑战,特别是当需要实时反馈后台处理进度时。WebUploader 是一个强大的前端文件上传组件,支持HTML5和Flash,提供文件分片上传、MD5校验等功能。结合 ASP.NET CORE SignalR...
通过以上步骤和策略,开发者可以在C# ASP.NET环境中实现高效、安全的大文件上传功能,为用户提供良好的上传体验。在整个过程中,需要注意性能优化、用户体验提升和安全性保障,确保Web应用的稳定运行。
ASP.NET大文件上传是Web开发中的一个重要话题,尤其是在处理用户可能需要上传大量数据或大型多媒体文件的场景。本文将深入探讨ASP.NET实现大文件上传的原理、相关技术以及提供的源码解析。 首先,ASP.NET是一种微软...
**异步处理**:利用ASP.NET MVC的异步控制器,可以在不阻塞其他请求的情况下处理大文件上传。异步操作可以提高应用的并发性能。 **流式处理**:避免一次性加载整个文件到内存,而是使用流来读取和写入文件。这样...
综上所述,实现ASP.NET中的一次性多文件上传,我们需要利用HTML5的`multiple`属性让用户选择多个文件,然后在服务器端通过遍历Request.Files集合来处理这些文件。同时,为了优化用户体验,可以结合前端技术实现异步...
在大文件上传场景下,JQuery可以用来创建动态的用户界面,实时显示上传进度,并处理用户的交互。 文件上传通常涉及到两个主要问题:文件大小限制和用户体验。由于传统的HTTP表单上传方式会一次性发送整个文件,对于...
ASP.NET大文件上传批量处理是Web开发中一个重要的技术需求,尤其在处理用户需要上传大量或大体积文件的场景下。传统的ASP.NET框架在默认情况下对文件上传大小有所限制,通常为4MB左右,这在处理大文件时显然是不够的...
本文将深入探讨如何在ASP.NET环境中利用C#语言开发一个具有上传进度条功能的大文件上传系统。 首先,我们需要理解上传进度条的工作原理。在文件上传过程中,进度条通过实时监测已上传的数据量与总文件大小的比例来...