FileUpload 您需要亲自将 enctype="multipart/form-data" 添加到页面的 <form> 元素中
FileUpload 控件生成的源代码
< HTML xmlns ="http://www.w3.org/1999/xHTML" >
< head >< title >
Upload Files
</ title ></ head >
< body >
< form name ="form1" method ="post" action ="MyFileUpload.ASPx"
id ="form1" enctype ="multipart/form-data" >
< div >
< input type ="hidden" name ="__VIEWSTATE" id ="__VIEWSTATE" value ="/wEPDwUJNDcxNTg5NDg3D2QWAgIEDxYCHgdlbmN0eXBlBRNtdWx0aXBhcnQvZm9yb
S1kYXRhZGQUQEUFMY1+/fp1mnrkbqmVNQIzFA==" />
</ div >
< div >
< input type ="file" name ="FileUpload1" id ="FileUpload1" />< br />
< br />
< input type ="submit" name ="Button1" value ="Upload File"
id ="Button1" /> < br />
< br />
< span id ="Label1" ></ span >
</ div >
< div >
< input type ="hidden" name ="__EVENTVALIDATION" id ="__EVENTVALIDATION"
value ="/wEWAgLB+7jIAwKM54rGBv2Iz6LxVY7jWec0gZMxnuaK2ufq" />
</ div ></ form >
</ body >
</ HTML >
确定可以上传:定位到保存上传的文件夹(用IE)——属性——安全——是否有ASPNET帐户 没则加
去 掉上传大小限制:在 web.config.comments 文件(可以在 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG 的 ASP.NET 2.0 配置文件夹中找到)或应用程序的 web.config 文件中进行一些改动
在 web.config.comments 文件中,查找一个名为 <executionTimeout>的节点
< httpRuntime
executionTimeout ="110" 上传时间
maxRequestLength ="4096" 大小
requestLengthDiskThreshold ="80"
useFullyQualifiedRedirectUrl ="false"
minFreeThreads ="8"
minLocalRequestFreeThreads ="4"
appRequestQueueLimit ="5000"
enableKernelOutputCache ="true"
enableVersionHeader ="true"
requireRootedSaveASPath ="true"
enable ="true"
shutdownTimeout ="90"
delayNotificationTimeout ="5"
waitChangeNotification ="0"
maxWaitChangeNotification ="0"
enableHeaderChecking ="true"
sendCacheControlHeader ="true"
apartmentThreading ="false" />
在 web.config.comments 文件中进行此改动会将该设置应用于服务器上的所有应用程序。如果要将该设置仅应用于正在使用的应用程序,则将该节点应用于应用程序的 web.config 文件,覆盖 web.config.comments 文件中的所有设置。请确保该节点位于配置文件中的 <system.web> 节点之间。
使用验证控件限制上传类型
< ASP:FileUpload ID ="FileUpload1" runat ="server" />< br />
< br />
< ASP:Button ID ="Button1" runat ="server" OnClick ="Button1_Click"
Text ="Upload File" /> < br />
< br />
< ASP:Label ID ="Label1" runat ="server" ></ ASP:Label >
< ASP:RegularExpressionValidator
id ="RegularExpressionValidator1" runat ="server"
ErrorMessage ="Only mp3, m3u or mpeg files are allowed!"
ValidationExpression ="^(([a-zA-Z]:)|(/{2}w+)$?)(/(w[w].*))
+(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)$"
ControlToValidate ="FileUpload1" ></ ASP:RegularExpressionValidator >
< br />
< ASP:RequiredFieldValidator
id ="RequiredFieldValidator1" runat ="server"
ErrorMessage ="This is a required field!"
ControlToValidate ="FileUpload1" ></ ASP:RequiredFieldValidator >
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
If FileUpload1.HasFile Then
Dim fileExt As String
fileExt = System.IO.Path.GetExtension(FileUpload1.FileName)
If (fileExt = ".mp3") Then
Try
FileUpload1.SaveAs("C:Uploads" & _
FileUpload1.FileName)
Label1.Text = "File name: " & _
FileUpload1.PostedFile.FileName & "" & _
"File Size: " & _
FileUpload1.PostedFile.ContentLength & " kb" & _
"Content type: " & _
FileUpload1.PostedFile.ContentType
Catch ex As Exception
Label1.Text = "ERROR: " & ex.Message.ToString()
End Try
Else
Label1.Text = "Only .mp3 files allowed!"
End If
Else
Label1.Text = "You have not specified a file."
End If
End Sub