上传大的文件

upload.aspx
<% @ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm2.aspx.vb" Inherits="test.WebForm2" %>
< HTML >
    
< HEAD >
        
< title > 上传文件 , http://www.chinabs.net  </ title >
    
</ HEAD >
    
< body >
        
< center >
            
< form  id ="uploderform"  method ="post"   enctype ="multipart/form-data"  runat ="server" >
                
< table  border ="1"  cellspacing ="2"  cellpadding ="2" >
                    
< tr >
                        
< td >< h5 > 选择要上传的文件: </ h5 >
                        
</ td >
                    
< tr >
                    
< tr >
                        
< td >
                            
< input  type ="file"  id ="myFile"  runat ="server"  NAME ="myFile" >
                        
</ td >
                    
</ tr >
                    
< tr >
                        
< td >
                            
< input  type ="button"  value ="上 传"   runat ="server"  ID ="Button1"
                                NAME
="Button1" >
                        
</ td >
                    
</ tr >
                
</ table >
            
</ form >
            
< br >
            
< br >
            
< table  border ="1"  cellspacing ="2" >
                
< tr >
                    
< td >< b > 文件资料 </ b ></ td >
                    
< td > &nbsp; </ td >
                
</ tr >
                
< tr >
                    
< td > 文件名 : </ td >
                    
< td >< asp:label  id ="fname"  text =""  runat ="server"   /></ td >
                
</ tr >
                
< tr >
                    
< td > 文件类型 : </ td >
                    
< td >< asp:label  id ="fenc"  runat ="server"   /></ td >
                
</ tr >
                
< tr >
                    
< td > 文件大小 :(in bytes) </ td >
                    
< td >< asp:label  id ="fsize"  runat ="server"   /></ td >
                
</ tr >
            
</ table >
            
< br >
            
< br >
            
< br >
        
</ center >
    
</ body >
</ HTML >

upload.aspx.vb
Imports  System.IO
Public   Class WebForm2
    
Inherits System.Web.UI.Page

#Region 
" Web 窗体设计器生成的代码 "

    '该调用是 Web 窗体设计器所必需的。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    
End Sub

    
Protected WithEvents fname As System.Web.UI.WebControls.Label
    
Protected WithEvents fenc As System.Web.UI.WebControls.Label
    
Protected WithEvents fsize As System.Web.UI.WebControls.Label
    
Protected WithEvents myFile As System.Web.UI.HtmlControls.HtmlInputFile
    
Protected WithEvents Button1 As System.Web.UI.HtmlControls.HtmlInputButton

    
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
    '不要删除或移动它。
    Private designerPlaceholderDeclaration As System.Object

    
Private Sub Page_Init(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Init
        
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
        '不要使用代码编辑器修改它。
        InitializeComponent()
    
End Sub


#
End Region

    
Private Sub Button1_ServerClick(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.ServerClick
        
'检查上传文件不为空
        If Not myFile.PostedFile Is Nothing Then
            
Dim nam, newext, newname As String
            
Dim i As Integer
            nam 
= myFile.PostedFile.FileName
            
'取得文件名(抱括路径)里最后一个"."的索引
            i = CInt(nam.LastIndexOf("."))
            
'取得文件扩展名
            newext = nam.Substring(i)
            
'这里自动根据日期和文件大小不同为文件命名,确保文件名不重复
            newname = Now.DayOfYear.ToString() + myFile.PostedFile.ContentLength.ToString()
            
'保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
            '注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
            'Response.Write(Server.MapPath("\\upload\\" + newname + newext))
            myFile.PostedFile.SaveAs(Server.MapPath("upload\" + newname + newext))
            
'得到这个文件的相关属性:文件名,文件类型,文件大小
            fname.Text = myFile.PostedFile.FileName
            fenc.Text 
= myFile.PostedFile.ContentType
            fsize.Text 
= myFile.PostedFile.ContentLength.ToString()

        
End If
    
End Sub


    
Private Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load

    
End Sub

End Class


web.config
<? xml version="1.0" encoding="utf-8"  ?>
< configuration >
    
  
< system .web >

    
<!--   动态调试编译
          设置 compilation debug="true" 以将调试符号(.pdb 信息)
          插入到编译页中。因为这将创建执行起来
          较慢的大文件,所以应该只在调试时将该值设置为 true,而所有其他时候都设置为
          false。有关更多信息,请参考有关
          调试 ASP.NET 文件的文档。
    
-->
    
< compilation  defaultLanguage ="vb"  debug ="true"   />

    
<!--   自定义错误信息
          设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
          为每个要处理的错误添加 <error> 标记。

          "On" 始终显示自定义(友好的)信息。
          "Off" 始终显示详细的 ASP.NET 错误信息。
          "RemoteOnly" 只对不在本地 Web 服务器上运行的
           用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
           不向远程客户端显示应用程序的详细信息。
    
-->
    
< httpRuntime  executionTimeout ="1000"  maxRequestLength ="409600"  useFullyQualifiedRedirectUrl ="false" />  
    
< customErrors  mode ="RemoteOnly"   />

    
<!--   身份验证 
          此节设置应用程序的身份验证策略。可能的模式是 "Windows"、 
          "Forms"、 "Passport" 和 "None"

          "None" 不执行身份验证。 
          "Windows" IIS 根据应用程序的设置执行身份验证 
            (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
          "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后 
           在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
          "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
           它为成员站点提供单独登录和核心配置文件服务。
    
-->
    
< authentication  mode ="Windows"   />  


    
<!--   授权 
           此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
          应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
          (未经身份验证的)用户。
    
-->
    
< authorization >
        
< allow  users ="*"   />   <!--  允许所有用户  -->

            
<!--   <allow     users="[逗号分隔的用户列表]"
                             roles="[逗号分隔的角色列表]"/>
                  <deny      users="[逗号分隔的用户列表]"
                             roles="[逗号分隔的角色列表]"/>
            
-->
    
</ authorization >

    
<!--   应用程序级别跟踪记录
          应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
          设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
          在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
           根目录中的 "trace.axd" 页来查看
          应用程序跟踪日志。
    
-->
    
< trace  enabled ="false"  requestLimit ="10"  pageOutput ="false"  traceMode ="SortByTime"  localOnly ="true"   />


    
<!--   会话状态设置
          默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
          如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
         若要禁用 Cookie,请设置 sessionState cookieless="true"。
    
-->
    
< sessionState 
            
mode ="InProc"
            stateConnectionString
="tcpip=127.0.0.1:42424"
            sqlConnectionString
="data source=127.0.0.1;Trusted_Connection=yes"
            cookieless
="false"  
            timeout
="20"  
    
/>

    
<!--   全球化
          此节设置应用程序的全球化设置。
    
-->
    
< globalization  requestEncoding ="utf-8"  responseEncoding ="utf-8"   />
   
  
</ system.web >

</ configuration >

你可能感兴趣的:(文件)