上传实例

updata.aspx
<%@ Page language="c#" Codebehind="updata.aspx.cs" AutoEventWireup="false" Inherits="FIC.Web.SysUser.updata" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>updata</title>
        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        
<meta name="CODE_LANGUAGE" Content="C#">
        
<meta name="vs_defaultClientScript" content="JavaScript">
        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<INPUT id="File1" style="Z-INDEX: 101; LEFT: 136px; POSITION: absolute; TOP: 64px" type="file"
                name
="File1" runat="server">
            
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 264px; POSITION: absolute; TOP: 136px" runat="server"
                Text
="Button"></asp:Button>
            
<asp:HyperLink id="HyperLink1" style="Z-INDEX: 103; LEFT: 152px; POSITION: absolute; TOP: 200px"
                runat
="server">HyperLink</asp:HyperLink>
        
</form>
    
</body>
</HTML>

updata.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace FIC.Web.SysUser
{
    
/// <summary>
    
/// updata 的摘要说明。
    
/// </summary>

    public class updata : System.Web.UI.Page
    
{
        
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
        
protected System.Web.UI.WebControls.HyperLink HyperLink1;
        
protected System.Web.UI.WebControls.Button Button1;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
        }


        
Web 窗体设计器生成的代码

        
private void Button1_Click(object sender, System.EventArgs e)
        
{
            
if(File1.PostedFile!=null)
            
{     
                
string nam = File1.PostedFile.FileName ;
                
//取得文件名(抱括路径)里最后一个"."的索引
                int i= nam.LastIndexOf(".");

                
//取得文件扩展名
                string newext =nam.Substring(i);
                i
=nam.LastIndexOf("\\");
                
string docname=nam.Substring(i+1);
                
                
if(newext.ToString() ==".rar")
                
{
                    
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
                    
                    Random ran
=new Random();
                    
                    
string newname=ran.Next()+"_"
                    
                    
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
                    
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
                    File1.PostedFile.SaveAs(Server.MapPath("..\\updata\\"+newname+docname)); 

                    
this.HyperLink1.NavigateUrl  ="updata"+newname+newext;

                    
//得到这个文件的相关属性:文件名,文件类型,文件大小
                    
//fname.Text=File1.PostedFile.FileName;
                    
//fenc.Text=File1.PostedFile.ContentType ;
                    
//fsize.Text=File1.PostedFile.ContentLength.ToString();
                }

                
else
                
{
                  Response.Write(
"只能是.rar文件");
                }

            }


        }

    }

}



updata.aspx.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
  
<!-- 
    Microsoft ResX Schema 
    
    Version 1.3
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
     ado.net/XML headers & schema 
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">1.3</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, </resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, </resheader>
    <data name="Name1">this is my long string</data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        [base64 mime encoded serialized .NET Framework object]
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        [base64 mime encoded string representing a byte array form of the .NET Framework object]
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used forserialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    
-->
  
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    
<xsd:element name="root" msdata:IsDataSet="true">
      
<xsd:complexType>
        
<xsd:choice maxOccurs="unbounded">
          
<xsd:element name="data">
            
<xsd:complexType>
              
<xsd:sequence>
                
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              
</xsd:sequence>
              
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            
</xsd:complexType>
          
</xsd:element>
          
<xsd:element name="resheader">
            
<xsd:complexType>
              
<xsd:sequence>
                
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              
</xsd:sequence>
              
<xsd:attribute name="name" type="xsd:string" use="required" />
            
</xsd:complexType>
          
</xsd:element>
        
</xsd:choice>
      
</xsd:complexType>
    
</xsd:element>
  
</xsd:schema>
  
<resheader name="resmimetype">
    
<value>text/microsoft-resx</value>
  
</resheader>
  
<resheader name="version">
    
<value>1.3</value>
  
</resheader>
  
<resheader name="reader">
    
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  
</resheader>
  
<resheader name="writer">
    
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  
</resheader>
  
<data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    
<value>True</value>
  
</data>
  
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    
<value>Private</value>
  
</data>
  
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    
<value>False</value>
  
</data>
</root>
原文地址:https://www.cnblogs.com/star250/p/699650.html