ASP.NET批量上传文件组件(三)
二、上传组件的使用
1、到阡陌创想网站www.kingmoo.net下载全套源代码(毫无保留吐血中......)。解压后放到任意目录下面。
2、在VS2008 中利用网站模式打开文件目录。
Bin目录:下面存放着Ext.Direct.dll,主要是提供客户端和服务器端的Ajax数据交互。无需改动。
css目录:存放的文件都是样式表,如果对组件外观、配色不满意打开default.css或ext-SwfUploadPanel.css自己改动吧。
images目录:存放着和CSS关联的图标文件,无需改动。
js 目录:存放这整个控件的源代码,打开后可以任意改动实现控件的深度定制。
lib 目录:存放着swfupload v2.5官方的js库文件和Extjs v3.1的官方库文件,请勿改动,即便确需改动应采用继承或扩展方式在另外的自定义js文件中进行。
upload 目录:上传文件的存放目录,可在UploadHandler.ashx中更改。
string uploadPath = context.Server.MapPath(context.Request.ApplicationPath + "/upload");
Default.aspx文件:Demo文件,演示了如何调用SwfUpload-Ext控件。
Global.asax文件:全局事件处理文件,主要负责在上传时处理Session、Cookie,此文件需和SwfUpload紧密配合,请勿改动。
SwfHandler.ashx文件:direct数据交互服务器端文件。
UploadHandler.ashx文件:上传时服务器端事件处理文件。该文件把上传文件写到指定位置,并将状态返回到客户端。
Web.config文件:网站配置文件,此文件中与控件相关内容如下:
<location path="UploadHandler.ashx">
<system.web>
<httpRuntime maxRequestLength="50000" executionTimeout="300" />
system.web>
location>
其作用在于指定上传文件大小和上传文件时服务器端事件处理文件。
3、控件的使用
在VS2008 中利用网站模式打开文件目录,直接运行无需配置,即可看到效果。如果在你的项目中要使用此控件,则把控件web.config中的几行代码加入到项目的web.config内容,同时也把控件Global.asax中的内容复制到你项目的Global.asax中,如果你的项目没有Global.asax,则整个文件复制过去就可以了。最后把css、images、lib、js复制到项目中,不要忘记建立上传文件存放的目录啊!
上述配置完成以后可以在你的web中使用了。使用的时候应该引用相应的js 和 css文件:
<head runat="server">
< type="text/javascript" src="lib/ext-base-debug.js">
< type="text/javascript" src="lib/ext-all-debug.js">
< type="text/javascript" src="lib/ext-lang-zh_CN.js" >
< type="text/javascript" src="lib/swfupload.js" charset="gb2312" >
< type="text/javascript" src="lib/handlers.js" charset="gb2312" >
< type="text/javascript" src="SwfHandler.ashx">
< type="text/javascript" src="js/SwfUpload-Ext.js" >
head>
“靠!也太复杂了吧”,估计很多熟悉.NET的程序员要骂街了。是的,这和拖曳.NET控件相比是复杂很多了,但是不要忘记,我们做的是全AJAX的应用,而且前端是全JS代码,这是潮流也是趋势啊。
终于可以调用控件了:
<script type="text/javascript">
Ext.onReady(function()
{
var win = new Ext.Window({
title: '多文件上传示例',
width: 500,
height: 500,
resizable: false,
layout: 'fit',
items: [
{
xtype: 'swfupload-ext',
//服务程序设置
upload_url: "UploadHandler.ashx",
post_params: {
"ASPSESSID": ""
},
//上传文件设置
file_size_limit: "40 MB",
file_types: "*.*",
file_types_description: "All Files",
file_upload_limit: 0, // Zero means unlimited
// 按钮设置
button_image_url: "images/swfupload/icons/button_add.png", //慎重改动
button_placeholder_id: "spanButtonPlaceholder", //慎重改动
button_width: 70, //慎重改动
button_height: 22, //慎重改动
button_text: '', //慎重改动
button_text_style: '.x-buttonSmall { font-size: 14pt;vertical-align;middle; }',//慎重改动
// Flash程序设置
flash_url: "lib/swfupload.swf",
flash9_url: "lib/swfupload_FP9.swf",
debug: false
}]
});
win.show();
});
浙公网安备 33010602011771号