这个文件上传应该可以满足一般的需要了,其中的添加到数据库记录,您可以按需要省略掉。
代码:upload.aspx
1@ Page Language="VB"
1 @ Import Namespace=" System.IO "
1 @ Import Namespace=" System.DATA "
1@ import Namespace="System.Data.SqlClient"
1<script language="VB" runat="SERVER">
2Dim lstrFileFolder as string
3Dim lstrFileFolder_1 as string
4Dim lstrFileNamePath as string
5Dim lstrFileNamePath_1 as string
6Sub UploadFile_Clicked ( Sender as Object, e as EventArgs )
7Dim lstrFileName as string
8
9'Dim lstrFileFolder as string
10Dim CMDfilename as string '表单cmdfilename的值
11CMDfilename = request("CMDfilename")
12'''
13'''
14' 如果上传目录为空,就使用" upload "作为缺省上传目录
15' 获得上传到服务器的目录名称
16if dir.value <> "" then
17lstrFileFolder_1 = dir.value & "/"
18lstrFileFolder = trim((Server.MapPath(""))) & "\" & dir.value & "\"
19else
20lstrFileFolder_1 = "upload/"
21lstrFileFolder = trim((Server.MapPath(""))) &"\upload\"
22end if
23
24' 获得文件名称
25lstrFileName = loFile.PostedFile.FileName
26
27' 注: loFile.PostedFile.FileName 返回的是
28'通过文件对话框选择的文件名,这之中包含了文件的目录信息
29
30'只能上传.xls文件
31if instr(Path.GetFileName ( lstrFileName ),".xls")=0 and instr(Path.GetFileName ( lstrFileName ),".Xls")=0 and instr(Path.GetFileName ( lstrFileName ),".XLS")=0 then
32MessageNotXLS.InnerHtml = "只能上传.xls文件"
33MessageNotXLS.Style("color") = "red"
34exit sub
35end if
36
37if CMDfilename = "random" then
38dim lstrFileName111 as string = Path.GetFileName ( lstrFileName ) '获得原名
39lstrFileName=now()
40lstrFileName=replace(lstrFileName,"-","")
41lstrFileName=replace(lstrFileName,":","")
42lstrFileName=replace(lstrFileName," ","")
43'lstrFileName=lstrFileName+"."
44lstrFileName=lstrFileName & right(Path.GetFileName ( lstrFileName111 ),len(Path.GetFileName ( lstrFileName111 ))-(instr(Path.GetFileName ( lstrFileName111 ),"."))+1)
45else
46lstrFileName = Path.GetFileName ( lstrFileName )
47end if
48' 去掉目录信息,返回文件名称
49
50' 判断上传目录是否存在,不存在就建立
51If ( not Directory.Exists ( lstrFileFolder ) ) Then
52Directory.CreateDirectory ( lstrFileFolder )
53End If
54
55'上传文件到服务器
56lstrFileNamePath = lstrFileFolder & lstrFileName
57lstrFileNamePath_1 = lstrFileFolder_1 & lstrFileName
58' 得到上传目录及文件名称
59loFile.PostedFile.SaveAs ( lstrFileNamePath )
60
61' 获得并显示上传文件的属性
62FileName.Text = lstrFileName
63' 获得文件名称
64FileType.Text = loFile.PostedFile.ContentType
65' 获得文件类型
66FileLength.Text = cStr ( loFile.PostedFile.ContentLength )
67' 获得文件长度
68FileUploadForm.visible = false
69AnswerMsg.visible = true
70' 显示上传文件属性
71AddToDB()
72End sub
73
74'添加记录信息到数据库,可以不要这步。
75sub AddToDB()
76Dim MyConnection As SQLConnection = New SQLConnection (ConfigurationSettings.AppSettings("ConnStr"))
77Dim InsertCmd As String = "insert into chaoqi (title,filepath) values (@title,@filepath)"
78Dim MyCommand As SqlCommand = new SqlCommand(InsertCmd, MyConnection)
79
80MyCommand.Parameters.Add(New SqlParameter("@title", SqlDbType.NVarChar, 50))
81MyCommand.Parameters("@title").Value = title.value
82MyCommand.Parameters.Add(New SqlParameter("@filepath", SqlDbType.NVarChar, 50))
83MyCommand.Parameters("@filepath").Value = lstrFileNamePath_1
84MyCommand.Connection.Open()
85Try
86MyCommand.ExecuteNonQuery()
87Message.InnerHtml = "<b>已添加记录</b><br>" & InsertCmd.ToString()
88Catch Exp As SQLException
89If Exp.Number = 2627
90Message.InnerHtml = "错误:已存在具有相同主键的记录"
91Else
92Message.InnerHtml = "错误:未能添加记录,请确保正确填写了字段"
93End If
94Message.Style("color") = "red"
95
96End Try
97
98MyCommand.Connection.Close()
99end sub
100
101</script>
1<html>
2<head>
3<title>上传文件</title>
4<link href="style/main.css" rel="stylesheet" type="text/css"/>
5</head>
6<body>
7<asp:panel id="FileUploadForm" runat="server" visible=" true ">
8<form enctype="multipart/form-data" method="post" runat="server">
9<p>
10</p>
11<table border="1" bordercolor="#999999" cellpadding="3" cellspacing="0" rules="cols" style="BORDER-RIGHT: #999999 1px; BORDER-TOP: #999999 1px; BORDER-LEFT: #999999 1px; WIDTH: 100%; BORDER-BOTTOM: #999999 1px; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: white">
12<tbody>
13<tr>
14<td bgcolor="#000084" colspan="2">
15<font color="#ffffff"><b>超期记录文件上传(Excel文件)</b></font></td>
16</tr>
17<tr>
18<td width="20%">
19请输入该文件要显示的名称:</td>
20<td>
21<input id="title" runat="server" type="text"/></td>
22</tr>
23<tr>
24<td bgcolor="#cccccc" width="20%">
25请选择上传到服务器的文件:</td>
26<td bgcolor="#cccccc"><input id="loFile" runat="server" type="file"/></td>
27</tr>
28<tr>
29<td bgcolor="#eeeeee" width="20%">
30匹配类型:</td>
31<td bgcolor="#eeeeee">
32随机生成文件名(无重复):
33<input checked="checked" id="CMDfilename" name="CMDfilename" type="radio" value="random">
34使用原名(若重复则覆盖):
35<input id="CMDfilename" name="CMDfilename" type="radio" value="NotRandom">
36</input></input></td>
37</tr>
38<tr>
39<td bgcolor="#cccccc" colspan="2">
40<div class="expandable" level2id="compilerOutputDiv" onclick="OnToggleTOCLevel1()" style="FONT-WEIGHT: bold; CURSOR: hand; COLOR: navy; TEXT-DECORATION: underline">显示高级选项:</div>
41<div id="compilerOutputDiv" style="display: none;">
42<br/><table bgcolor="#ffffcc" width="100%">
43<tr>
44<td>请输入上传到服务器的目录名称:<input id="dir" runat="server" type="text"/>【可以自定义上传目录,形式如:upload_1,将新建一个upload_1目录,请确定您有上传到此目录的权限。当前程序目录:<font color="red"><b>```
45response.write (trim((Server.MapPath(""))))
46```\</b></font>】</td>
47</tr></table></div></td></tr></tbody></table>
48
49
50<tr>
51<td bgcolor="#cccccc" colspan="2">
52<input onserverclick="UploadFile_Clicked" runat="server" type="submit" value="开始上传"/>
53<span enableviewstate="false" id="MessageNotXLS" runat="server" style="font: arial 11pt;"></span></td>
54</tr>
55
56
57</form>
58</asp:panel>
59<asp:panel id="AnswerMsg" runat="server" visible=" false ">
60<meta content="5;URL=Admin_XLS_list.aspx" http-equiv="REFRESH"/>
61文件上传完成 <br/>
62成功上传 <asp:label id="FileName" runat="server"></asp:label> <br/>
63文件大小 <asp:label id="FileLength" runat="server"></asp:label> 字节 <br/> 文件类型 <asp:label id="FileType" runat="server"></asp:label> <br/>
645秒之后自动返回....
65<br/>
66<span enableviewstate="false" id="Message" runat="server" style="font: arial 11pt;"></span>
67</asp:panel>
68<script language="JavaScript">
69function OnToggleTOCLevel1()
70{
71var elemSrc = window.event.srcElement;
72var elemLevel2 = document.all(elemSrc.level2ID);
73
74if (elemLevel2.style.display == 'none')
75{
76elemLevel2.style.display = '';
77if (elemSrc.usesGlyph == '1')
78elemSrc.innerHTML = '6';
79}
80else {
81elemLevel2.style.display = 'none';
82if (elemSrc.usesGlyph == '1')
83elemSrc.innerHTML = '4';
84}
85}
86</script>
87</body>
88</html>