这个文件上传应该可以满足一般的需要了,其中的添加到数据库记录,您可以按需要省略掉。
代码:upload.aspx
<%@PageLanguage="VB"%>
<%@ImportNamespace="System.IO"%>
<%@ImportNamespace="System.DATA"%>
<%@importNamespace="System.Data.SqlClient"%>
<SCRIPTLANGUAGE="VB"RUNAT="SERVER">
DimlstrFileFolderasstring
DimlstrFileFolder_1asstring
DimlstrFileNamePathasstring
DimlstrFileNamePath_1asstring
SubUploadFile_Clicked(SenderasObject,easEventArgs)
DimlstrFileNameasstring
'DimlstrFileFolderasstring
DimCMDfilenameasstring'表单cmdfilename的值
CMDfilename=request("CMDfilename")
'''
'''
'如果上传目录为空,就使用"upload"作为缺省上传目录
'获得上传到服务器的目录名称
ifdir.value<>""then
lstrFileFolder_1=dir.value&"/"
lstrFileFolder=trim((Server.MapPath("")))&"\"&dir.value&"\"
else
lstrFileFolder_1="upload/"
lstrFileFolder=trim((Server.MapPath("")))&"\upload\"
endif
'获得文件名称
lstrFileName=loFile.PostedFile.FileName
'注:loFile.PostedFile.FileName返回的是
'通过文件对话框选择的文件名,这之中包含了文件的目录信息
'只能上传.xls文件
ifinstr(Path.GetFileName(lstrFileName),".xls")=0andinstr(Path.GetFileName(lstrFileName),".Xls")=0andinstr(Path.GetFileName(lstrFileName),".XLS")=0then
MessageNotXLS.InnerHtml="只能上传.xls文件"
MessageNotXLS.Style("color")="red"
exitsub
endif
ifCMDfilename="random"then
dimlstrFileName111asstring=Path.GetFileName(lstrFileName)'获得原名
lstrFileName=now()
lstrFileName=replace(lstrFileName,"-","")
lstrFileName=replace(lstrFileName,":","")
lstrFileName=replace(lstrFileName,"","")
'lstrFileName=lstrFileName+"."
lstrFileName=lstrFileName&right(Path.GetFileName(lstrFileName111),len(Path.GetFileName(lstrFileName111))-(instr(Path.GetFileName(lstrFileName111),"."))+1)
else
lstrFileName=Path.GetFileName(lstrFileName)
endif
'去掉目录信息,返回文件名称
'判断上传目录是否存在,不存在就建立
If(notDirectory.Exists(lstrFileFolder))Then
Directory.CreateDirectory(lstrFileFolder)
EndIf
'上传文件到服务器
lstrFileNamePath=lstrFileFolder&lstrFileName
lstrFileNamePath_1=lstrFileFolder_1&lstrFileName
'得到上传目录及文件名称
loFile.PostedFile.SaveAs(lstrFileNamePath)
'获得并显示上传文件的属性
FileName.Text=lstrFileName
'获得文件名称
FileType.Text=loFile.PostedFile.ContentType
'获得文件类型
FileLength.Text=cStr(loFile.PostedFile.ContentLength)
'获得文件长度
FileUploadForm.visible=false
AnswerMsg.visible=true
'显示上传文件属性
AddToDB()
Endsub
'添加记录信息到数据库,可以不要这步。
subAddToDB()
DimMyConnectionAsSQLConnection=NewSQLConnection(ConfigurationSettings.AppSettings("ConnStr"))
DimInsertCmdAsString="insertintochaoqi(title,filepath)values(@title,@filepath)"
DimMyCommandAsSqlCommand=newSqlCommand(InsertCmd,MyConnection)
MyCommand.Parameters.Add(NewSqlParameter("@title",SqlDbType.NVarChar,50))
MyCommand.Parameters("@title").Value=title.value
MyCommand.Parameters.Add(NewSqlParameter("@filepath",SqlDbType.NVarChar,50))
MyCommand.Parameters("@filepath").Value=lstrFileNamePath_1
MyCommand.Connection.Open()
Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml="<b>已添加记录</b><br>"&InsertCmd.ToString()
CatchExpAsSQLException
IfExp.Number=2627
Message.InnerHtml="错误:已存在具有相同主键的记录"
Else
Message.InnerHtml="错误:未能添加记录,请确保正确填写了字段"
EndIf
Message.Style("color")="red"
EndTry
MyCommand.Connection.Close()
endsub
</SCRIPT>
<html>
<head>
<title>上传文件</title>
<linkhref="style/main.css"type="text/css"rel="stylesheet"/>
</head>
<BODY>
<ASP:panelid="FileUploadForm"visible="true"runat="server">
<formmethod="post"enctype="multipart/form-data"runat="server">
<p>
</p>
<tablestyle="BORDER-RIGHT:#9999991px;BORDER-TOP:#9999991px;BORDER-LEFT:#9999991px;WIDTH:100%;BORDER-BOTTOM:#9999991px;BORDER-COLLAPSE:collapse;BACKGROUND-COLOR:white"bordercolor="#999999"cellspacing="0"cellpadding="3"rules="cols"border="1">
<tbody>
<tr>
<tdbgcolor="#000084"colspan="2">
<fontcolor="#ffffff"><b>超期记录文件上传(Excel文件)</b></font></td>
</tr>
<tr>
<tdwidth="20%">
请输入该文件要显示的名称:</td>
<td>
<inputid="title"type="text"runat="server"></td>
</tr>
<tr>
<tdwidth="20%"bgcolor="#cccccc">
请选择上传到服务器的文件:</td>
<tdbgcolor="#cccccc"><inputid="loFile"type="file"runat="server"></td>
</tr>
<tr>
<tdwidth="20%"bgcolor="#eeeeee">
匹配类型:</td>
<tdbgcolor="#eeeeee">
随机生成文件名(无重复):
<inputtype="radio"checked="checked"value="random"name="CMDfilename"id="CMDfilename"/>
使用原名(若重复则覆盖):
<inputtype="radio"value="NotRandom"name="CMDfilename"id="CMDfilename"/>
</td>
</tr>
<tr>
<tdbgcolor="#cccccc"colspan="2">
<divclass="expandable"onclick="OnToggleTOCLevel1()"level2ID="compilerOutputDiv"style="FONT-WEIGHT:bold;CURSOR:hand;COLOR:navy;TEXT-DECORATION:underline">显示高级选项:</div>
<divid="compilerOutputDiv"style="display:none;">
<br><tablewidth=100%bgcolor="#ffffcc">
<tr>
<td>请输入上传到服务器的目录名称:<inputid="dir"type="text"runat="server">【可以自定义上传目录,形式如:upload_1,将新建一个upload_1目录,请确定您有上传到此目录的权限。当前程序目录:<fontcolor=red><b><%response.write(trim((Server.MapPath(""))))%>\</b></font>】</td>
</td></tr></table></div>
</td>
</tr>
<tr>
<tdbgcolor="#cccccc"colspan="2">
<inputtype="submit"value="开始上传"OnServerClick="UploadFile_Clicked"runat="server">
<spanid="MessageNotXLS"EnableViewState="false"style="font:arial11pt;"runat="server"/></td>
</tr>
</tbody>
</table>
</form>
</ASP:panel>
<ASP:panelid="AnswerMsg"visible="false"runat="server">
<METAHTTP-EQUIV=REFRESHCONTENT='5;URL=Admin_XLS_list.aspx'>
文件上传完成<br>
成功上传<ASP:labelid="FileName"runat="server"/><br>
文件大小<ASP:labelid="FileLength"runat="server"/>字节<br> 文件类型<ASP:labelid="FileType"runat="server"/><br>
5秒之后自动返回....
<br>
<spanid="Message"EnableViewState="false"style="font:arial11pt;"runat="server"/>
</ASP:panel>
<scriptlanguage="JavaScript">
functionOnToggleTOCLevel1()
{
varelemSrc=window.event.srcElement;
varelemLevel2=document.all(elemSrc.level2ID);
if(elemLevel2.style.display=='none')
{
elemLevel2.style.display='';
if(elemSrc.usesGlyph=='1')
elemSrc.innerHTML='6';
}
else{
elemLevel2.style.display='none';
if(elemSrc.usesGlyph=='1')
elemSrc.innerHTML='4';
}
}
</script>
</BODY>
</HTML>
一个加强的文件上传(VB.Net)
最新推荐文章于 2021-08-06 01:26:35 发布