see:http://lszy.net/tm/ShowArticle.asp?ArticleID=1115

解决方案 »

  1.   

    asp.net程序可以用javascript调用xmlhttp+ado.stream来实现上传文件
    服务端用一个asp或aspx程序来处理客户端post过去的xml数据包相关资料你查"stream"
    http://www.csdn.net/develop/List_Article.asp
      

  2.   

    看看这个地方
    http://lszy.net/tm/ShowArticle.asp?ArticleID=1115
      

  3.   

    http://lszy.net/tm/ShowArticle.asp?ArticleID=1115
      

  4.   

    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="scdj.aspx.vb" Inherits="wjgl.scdj" validateRequest="false" %>
    <HTML>
    <HEAD>
    <title>文件管理</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <LINK href="../css/type.css" type="text/css" rel="stylesheet">
    </HEAD>
    <body leftMargin="1" topMargin="1" MS_POSITIONING="GridLayout" marginheight="1" marginwidth="1">
    <form id="form1" runat="server">
    <%if Yhqx=1 then%>
    <!--#include file="..\include\ym1.aspx" -->
    <%else if Yhqx=2 then%>
    <!--#include file="..\include\ym2.aspx" -->
    <%else if Yhqx=3%>
    <!--#include file="..\include\ym.aspx" -->
    <%end if%>
    <table cellSpacing="0" cellPadding="0" width="777" border="0" align="center">
    <tr>
    <td vAlign="top" width="10" background="..\images/bj.jpg" rowSpan="2">&nbsp;</td>
    <td vAlign="top" width="757" height="390">
    <table cellSpacing="0" cellPadding="0" width="100%" border="0">
    <tr>
    <td width="110" height="16">&nbsp;</td>
    <td width="540">&nbsp;</td>
    <td width="107">&nbsp;</td>
    </tr>
    <tr>
    <td height="344">&nbsp;</td>
    <td vAlign="top">
    <table cellSpacing="0" cellPadding="0" width="100%" border="0">
    <!--DWLayoutTable-->
    <tr>
    <TD width="540" height="9"></TD>
    </tr>
    <tr>
    <TD height="329" vAlign="top">
    <TABLE borderColor="#000000" cellSpacing="0" cellPadding="0" width="100%" border="1">
    <tr>
    <td vAlign="top" width="536" height="326"><table cellSpacing="0" cellPadding="0" width="100%" bgColor="#f0f0f0" border="0">
    <!--DWLayoutTable-->
    <tr>
    <td height="29" colspan="2" align="center" vAlign="bottom"><FONT face="宋体">
    <asp:label id="Lab_ts" runat="server" Font-Size="14px" ForeColor="Red"></asp:label>
    </FONT>
    </td>
    <td width="1"></td>
    </tr>
    <tr>
    <td height="35" colspan="2" align="center" vAlign="middle"><asp:label id="Label1" runat="server">文件类型:</asp:label>
    <asp:dropdownlist id="Drop_lx" runat="server" Width="120px" Height="20px" AutoPostBack="True"></asp:dropdownlist>
    &nbsp;
    <asp:label id="Label3" runat="server">文件子类型:</asp:label>
    <asp:dropdownlist id="Drop_zlx" runat="server" Width="120px" Height="20px"></asp:dropdownlist></td>
    <td></td>
    </tr>
    <tr>
    <td height="40" colspan="2" align="center" vAlign="middle" style="HEIGHT: 40px">
    <asp:label id="Lab_ts1" runat="server" Font-Size="14px" ForeColor="Red" Visible="False">变量失效请返回登陆页重新登陆</asp:label>
    <asp:label id="Label5" runat="server">上传文件:</asp:label>
    <INPUT id="File1" style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: gray 1px solid; WIDTH: 325px; BORDER-BOTTOM: gray 1px solid; HEIGHT: 22px"
    type="file" size="31" name="File1" runat="server"></td>
    <td></td>
    </tr>
    <tr>
    <td height="34" colspan="2" align="center" vAlign="middle"><A href="..\index.aspx" target="_top">
    <asp:label id="Lab_fh" runat="server" ForeColor="Red" Font-Size="12px" Visible="False">【 
                                      返回 】</asp:label></A>
    <asp:label id="Label6" runat="server">文件名称:</asp:label>
    <asp:textbox id="Txt_mc" runat="server" Height="20px" Width="325px" BorderWidth="1px" BorderColor="Gray"
    MaxLength="50"></asp:textbox>
    </td>
    <td></td>
    </tr>
    <tr>
    <td height="34" colspan="2" align="center" vAlign="middle">
    <asp:label id="Label2" runat="server">文件来源:</asp:label>
    <asp:textbox id="Txt_ly" runat="server" Height="20px" Width="325px" MaxLength="50" BorderColor="Gray"
    BorderWidth="1px"></asp:textbox>
    </td>
    <td></td>
    </tr>
    <tr>
    <td height="34" colspan="2" align="center" vAlign="middle">
    <asp:label id="Label4" runat="server">文件用途:</asp:label>
    <asp:textbox id="Txt_yt" runat="server" Height="20px" Width="325px" MaxLength="50" BorderColor="Gray"
    BorderWidth="1px"></asp:textbox></td>
    <td></td>
    </tr>
    <tr>
    <td height="76" colspan="2" align="center" vAlign="middle"><FONT face="宋体">
    <asp:label id="Label7" runat="server" Height="32px">详细说明:</asp:label>
    <asp:textbox id="Txt_sm" runat="server" Height="60px" Width="325px" BorderWidth="1px" BorderColor="Gray"
    BackColor="White" TextMode="MultiLine"></asp:textbox>
    </FONT>
    </td>
    <td></td>
    </tr>
    <tr>
    <td height="34" colspan="2" align="center" vAlign="middle"><FONT face="宋体">
    <asp:button id="Cmd_qd" runat="server" Width="40px" Height="20px" BorderColor="Silver" BackColor="White"
    Text="确 定" Font-Size="12px"></asp:button>
    &nbsp;&nbsp;
    <asp:button id="Cmd_qx" runat="server" Width="40px" Height="20px" BorderColor="Silver" BackColor="White"
    Text="取 消" Font-Size="12px"></asp:button>
    </FONT>
    </td>
    <td></td>
    </tr>
    <tr>
    <td width="1" height="16"></td>
    <td colspan="2" vAlign="top">&nbsp;</td>
    </tr>
    <tr>
    <td height="1"></td>
    <td width="534"></td>
    <td></td>
    </tr>
    </table>
    </td>
    </tr>
    </TABLE>
    </TD>
    </tr>
    </table>
    </td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td height="30">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </td>
    <td vAlign="top" width="10" background="..\images/bj.jpg" rowSpan="2">&nbsp;</td>
    </tr>
    <tr>
    <td vAlign="top" height="10">
    <table cellSpacing="0" cellPadding="0" width="100%" border="0">
    <tr>
    <td width="757" background="..\images/bj.jpg" height="10"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </HTML>
      

  5.   

    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.IO
    Imports System
    Public Class scdj
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents Txt_zh As System.Web.UI.WebControls.TextBox
        Protected WithEvents Txt_mm As System.Web.UI.WebControls.TextBox
        Protected WithEvents Check1 As System.Web.UI.WebControls.CheckBox
        Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile
        Protected WithEvents Txt_mc As System.Web.UI.WebControls.TextBox
        Protected WithEvents Txt_sm As System.Web.UI.WebControls.TextBox
        Protected WithEvents Lab_ts1 As System.Web.UI.WebControls.Label
        Protected WithEvents Label1 As System.Web.UI.WebControls.Label
        Protected WithEvents Label3 As System.Web.UI.WebControls.Label
        Protected WithEvents Label5 As System.Web.UI.WebControls.Label
        Protected WithEvents Label6 As System.Web.UI.WebControls.Label
        Protected WithEvents Label7 As System.Web.UI.WebControls.Label
        Protected WithEvents Lab_ts As System.Web.UI.WebControls.Label
        Protected WithEvents Drop_lx As System.Web.UI.WebControls.DropDownList
        Protected WithEvents Drop_zlx As System.Web.UI.WebControls.DropDownList
        Protected WithEvents Label4 As System.Web.UI.WebControls.Label
        Protected WithEvents Cmd_qd As System.Web.UI.WebControls.Button
        Protected WithEvents Cmd_qx As System.Web.UI.WebControls.Button
        Protected WithEvents Txt_ly As System.Web.UI.WebControls.TextBox
        Protected WithEvents Txt_yt As System.Web.UI.WebControls.TextBox
        Protected WithEvents Lab_fh As System.Web.UI.WebControls.Label
        Protected WithEvents Label2 As System.Web.UI.WebControls.Label
        '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        Dim nowdsn As String = ConfigurationSettings.AppSettings("dsn")
        Dim MyConnection As SqlConnection = New SqlConnection(nowdsn)
        Public Yhid As Long
        Public Yhqx As Integer
        Public Ary_bd As ArrayList = New ArrayList   '绑定控件的中间数组
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            Yhqx = 3
            If Session("Yhqx") = 0 Then
                fh()
            Else
                Yhqx = CInt(Session("Yhqx"))
                Yhid = CLng(Session("Yhid"))
            End If
            If Not IsPostBack Then            bind()        End If    End Sub    '控件绑定
        Sub bind()        MyConnection.Open()        Ary_bd.Add("")
            Dim Str As String
            Str = "Select T_Str_Lxmc From Tbl_Sclx"
            Dim My_js As SqlCommand = New SqlCommand(Str, MyConnection)
            Dim js As SqlDataReader = My_js.ExecuteReader
            While js.Read
                Ary_bd.Add(js.Item("T_Str_Lxmc"))
            End While
            Drop_lx.DataSource = Ary_bd '绑定项目名称
            Drop_lx.DataBind()
            js.Close()
            Ary_bd.Clear()
            Ary_bd.Add("")
            Drop_zlx.DataSource = Ary_bd
            Drop_zlx.DataBind()
            Ary_bd.Clear()
            MyConnection.Close()    End Sub    '文件类型改变时触发
        Private Sub Drop_lx_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Drop_lx.SelectedIndexChanged        MyConnection.Open()
            Dim n As Integer
            n = 0
            Dim lx = Drop_lx.SelectedItem.Text
            Dim Str_sql = "Select Tbl_Sczlx.T_Str_Zlxmc From Tbl_Sczlx,Tbl_Sclx Where Tbl_Sclx.T_Str_Lxmc=" & _
                         "'" & lx & "' and Tbl_Sclx.ID=Tbl_Sczlx.T_Int_Lxid"
            Dim My_js As SqlCommand = New SqlCommand(Str_sql, MyConnection)
            Dim js As SqlDataReader = My_js.ExecuteReader()
            While (js.Read)
                Ary_bd.Add(js.Item(0))
                n = n + 1
            End While
            Drop_zlx.DataSource = Ary_bd
            Drop_zlx.DataBind()
            Ary_bd.Clear()
            If n = 0 Then
                Ary_bd.Add("")
                Drop_zlx.DataSource = Ary_bd
                Drop_zlx.DataBind()
                Ary_bd.Clear()
            End If
            MyConnection.Close()    End Sub    'Session变量失效时返回登陆页
        Sub fh()        Drop_lx.Visible = False
            Drop_zlx.Visible = False
            Txt_mc.Visible = False
            Txt_sm.Visible = False
            Txt_yt.Visible = False
            Txt_ly.Visible = False
            File1.Visible = False
            Cmd_qd.Visible = False
            Cmd_qx.Visible = False
            Label1.Visible = False
            Label2.Visible = False
            Label3.Visible = False
            Label4.Visible = False
            Label5.Visible = False
            Label6.Visible = False
            Label7.Visible = False
            Lab_ts1.Visible = True
            Lab_fh.Visible = True
            Lab_ts.Visible = False    End Sub    '控件置为空
        Sub qx()        Txt_ly.Text = ""
            Txt_yt.Text = ""
            Txt_mc.Text = ""
            Txt_sm.Text = ""
            Lab_ts.Text = ""    End Sub    Private Sub Cmd_qx_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_qx.Click
            bind()
            qx()
        End Sub    '产生素材保存相应目录
        Sub Makedir(ByVal Path As String)        Dim MyPath, MyName As String        MyPath = Path   '设置路径
            MyName = Dir(MyPath, FileAttribute.Directory)
            If MyName = "" Then
                MkDir(MyPath)
            End If    End Sub    '转换文件大小
        Function Getfile(ByVal dx As String)        Dim wjdx As String '文件大小
            Dim ls As String
            Dim ls1, ls2 As Integer
            ls = dx
            ls1 = CInt(ls) \ 1024
            ls2 = CInt(ls) Mod 1024
            ls = CStr(ls1) & "." & Left(CStr(ls2), 2)
            If CInt(ls) < 1000 Then
                ls = ls & "KB"
                Return ls
            Else
                ls = CStr(ls1)
                ls1 = ls1 \ 1024
                ls2 = (CInt(ls) - ls1 * 1024) Mod 1024
                ls = CStr(ls1) & "." & Left(CStr(ls2), 2) & "MB"
                Return ls
            End If    End Function    '检查文件是否为压缩文件
        Function CheckZip(ByVal s As String) As Boolean        Dim Bln_b As Boolean
            Dim n, i As Integer
            Dim anyOf As String() = {"zip", "rar", "ZIP", "RAR", "Zip", "ZIp", "zIP", "ziP", "rAr", "rAR", "Rar", "RAr"}
            n = InStr(s, ".")
            s = Mid(s, n + 1)
            If n = 0 Then
                Bln_b = False
            Else
                For i = 0 To 11
                    If s = anyOf(i) Then
                        Bln_b = True
                        Exit For
                    Else
                        Bln_b = False
                    End If
                Next
            End If
            Return Bln_b    End Function    '检查文件名是否合法
        Function CheckName(ByVal s As String) As Boolean        Dim b As Boolean
            b = True
            Dim anyOf As Char() = {"?", "/", "\\", "<", ">", ":", "*", "|", "\*"}
            If (s.IndexOfAny(anyOf) >= 0 Or s = "") Then
                b = False
            Else
                b = True
            End If
            Return b    End Function
      

  6.   

    直接用<INPUT id="File1" type="file" size="48" name="File1" runat="server">
    在form 里添加encType="multipart/form-data"
    <form id="AddSpecialBill" method="post" encType="multipart/form-data" runat="server">
      

  7.   

    .aspx文件
    <FORM id="form1" method="post" enctype="multipart/form-data" runat="server">
    <INPUT id="News_Annex"  type="file"  name="News_Annex" runat="server">
    --------------------------
    .cs文件
    //CommonClass类
    CommonClass m_CC=new CommonClass ();
    //返回文件名
    m_file=m_CC.UploadFile(News_Annex); 
    -------------------------
    CommonClass.cs文件using System;
    using System.Web.UI.HtmlControls;
    namespace news
    {
          public class CommonClass:System.Web.UI.Page
    {
    public CommonClass()
    {}
                      //上传文件,并将选中的文件文件名改为改为日期+#+文件名形式,同时返回新文件名
    public string UploadFile(HtmlInputFile temp)
    {
    string NewFileName="";
    if(temp.PostedFile!=null)
    {
    int index=temp.PostedFile .FileName .LastIndexOf ("\\");
    if(index==-1)
       Response.Write("sdfsdf");
    else
    {  
    int len=temp.PostedFile.FileName.Length;
    string OldFileName=temp.PostedFile .FileName.Substring (index+1,len-index-1);
    //将文件名改为日期+#+文件名形式
    NewFileName=DateTime.Now.ToShortDateString ()+"#"+OldFileName;
    try
    {   
    temp.PostedFile .SaveAs (Server.MapPath ("files\\"+NewFileName));
    }
    catch(Exception)
    {
    Response.Write("error");
    }
    }

    }
    return NewFileName;
             }
                      //此方法将新文件名的日期+#除掉,显示原来的文件名,本例未调用
    public string ViewRealName(string VitualName)
    {
    string RealName;
    int SignPos=VitualName.IndexOf("#");
    RealName=VitualName.Substring(SignPos+1,VitualName.Length-SignPos-1);
    return RealName;
    }
    }
    }
      

  8.   

    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="MultiUpload.aspx.vb"
     Inherits="aspxWeb.MultiUpload" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
        <title>多文件上传</title>
        <script language="JavaScript">
        function addFile()
        {
         var str = '<INPUT type="file" size="50" NAME="File">'
         document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)
        }
        </script>
      </HEAD>
      <body>
        <form id="form1" method="post" runat="server" enctype="multipart/form-data">
          <center>
            <asp:Label Runat="server" ID="MyTitle"></asp:Label>
            <P id="MyFile"><INPUT type="file" size="50" NAME="File"></P>
            <P>
              <input type="button" value="增加(Add)" onclick="addFile()">
              <asp:Button Runat="server" Text="上传" ID="Upload"></asp:Button>
              <input onclick="this.form.reset()" type="button" value="重置(ReSet)">
            </P>
          </center>
          <P align="center">
            <asp:Label id="strStatus" runat="server" Font-Names="宋体" Font-Bold="True"
             Font-Size="9pt" Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>
          </P>
        </form>
      </body>
    </HTML>后代码:MultiUpload.aspx.vbPublic Class MultiUpload
        Inherits System.Web.UI.Page
      Protected WithEvents Upload As System.Web.UI.WebControls.Button
      Protected WithEvents MyTitle As System.Web.UI.WebControls.Label
      Protected WithEvents strStatus As System.Web.UI.WebControls.Label
    #Region " Web Form Designer Generated Code "
      'This call is required by the Web Form Designer.
      <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
      End Sub
      Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
      End Sub
    #End Region
      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MyTitle.Text = "<h3>多文件上传</h3>"
        Upload.Text = "开始上传"
        If (Me.IsPostBack) Then Me.SaveImages()
      End Sub
      Private Function SaveImages() As System.Boolean
        '遍历File表单元素
        Dim files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files
        '状态信息
        Dim strMsg As New System.Text.StringBuilder("上传的文件分别是:<hr color=red>")
        Dim iFile As System.Int32
        Try
          For iFile = 0 To files.Count - 1
            '检查文件扩展名字
            Dim postedFile As System.Web.HttpPostedFile = files(iFile)
            Dim fileName, fileExtension As System.String
            fileName = System.IO.Path.GetFileName(postedFile.FileName)
            If Not (fileName = String.Empty) Then
              fileExtension = System.IO.Path.GetExtension(fileName)
              strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>")
              strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>")
              strMsg.Append("上传文件的文件名:" + fileName + "<br>")
              strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>")
              '可根据扩展名字的不同保存到不同的文件夹
              postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName)
            End If
          Next
          strStatus.Text = strMsg.ToString()
          Return True
        Catch Ex As System.Exception
          strStatus.Text = Ex.Message
          Return False
        End Try
      End Function
    End Class好帖子,收藏
      

  9.   

    <%@ Import Namespace="System.IO" %>
    <%@ page Language="C#" debug="true" %>
    <html>
    <head>
    <title>上传文件 , http://www.chinabs.net </title>
    <script language="C#" runat="server">
     //This method is called when the "upload" button id pressed
     public void UploadFile(object sender , EventArgs E)
     {
       //检查上传文件不为空
       if(myFile.PostedFile!=null)
       {     
      string nam = myFile.PostedFile.FileName ;
      //取得文件名(抱括路径)里最后一个"."的索引
      int i= nam.LastIndexOf(".");
      //取得文件扩展名
      string newext =nam.Substring(i);
      //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
      DateTime now = DateTime.Now; 
      string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString(); 
      //保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
      //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
      myFile.PostedFile.SaveAs(Server.MapPath("\\upload\\"+newname+newext)); 
      //得到这个文件的相关属性:文件名,文件类型,文件大小
      fname.Text=myFile.PostedFile.FileName;
      fenc.Text=myFile.PostedFile.ContentType ;
      fsize.Text=myFile.PostedFile.ContentLength.ToString();
       }
     }</script>
    </head>
    <body>
    <center>
    <h3> 文件上传的实例, 来自<a href="http://www.chinabs.net">中国BS网</a></h3>
    <form id="uploderform" method="post" action="FileUpload.aspx" 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="上 传" OnServerClick="UploadFile" 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>