小弟没有用过ASP,现在就想做一个图片上传的程序,只要能上传后能获取到服务器端的相对路径就可以了,在论坛里搜了一大堆代码,都是存入数据库的,还都运行不了,总抱错,大家谁有简单一点的代码?谢谢了。

解决方案 »

  1.   

    先在HTML页面中弄入一个FileField控件(是HTML组件),然后在这个组件标签里面加一个runat="server"(作为服务器控件运行)同时设置ID为upFile。再加入一个服务器端的按钮,并在它的点击事件里写上
    upFile.PostedFile.SaveAs(Server.MapPath(path));
    //注意 :path是放上传文件的虚拟目录具体帮助如下备注
    使用 HtmlInputFile 服务器控件可以处理从浏览器客户端向服务器上载的二进制文件或文本文件。可以在 Microsoft Internet Explorer 3.02 或更高版本中上载文件。注意   为使此控件正常工作,必须将 HtmlForm 的 Enctype 属性设置为 "multipart/form-data"。
    若要指定要上载的文件,请在控件的文本框中输入文件的完整路径(例如,“C:\MyFiles\Test.txt”)。您也可通过单击“浏览”按钮,然后在“选择文件”对话框中定位文件来选择文件。HtmlInputFile 控件没有用于回发到服务器的内置方式。要将文件上载到服务器,请使用 PostedFile 属性中包含的 System.Web.HttpPostedFile 的 SaveAs 方法。此操作通常在事件处理方法(如按钮单击事件的事件处理方法)中进行。注意   使用 SaveAs 方法时,确保指定文件的完整路径(例如,“C:\MyFiles\Test.txt”)。否则,会尝试将文件放置在 systemroot\system32\inetsrv 目录中。默认情况下,此目录是写保护的;因此,文件不能保存在这里。确保为 ASP.NET 使用的帐户提供要存储文件的目录的写权限。
    上载大文件时,可使用 <httpRuntime> 元素的 maxRequestLength 属性来增加文件大小的最大允许值。当文件超出指定的大小时,浏览器中会产生 DNS 错误。上载大文件时,还可能会收到以下错误信息:aspnet_wp.exe (PID: 1520) 被回收,因为内存消耗超过了 460 MB(可用 RAM 的百分之 60)。如果遇到此错误信息,请增加应用程序的 Web.config 文件的 <processModel> 元素中 memoryLimit 属性的值。有关 HtmlInputFile 实例的初始属性值列表,请参见 HtmlInputFile 构造函数。示例
    [Visual Basic, C#, JScript] 该示例说明如何使用 HtmlInputFile 控件创建简单的文件上载方案。为了使该示例正常运行,您需要在 C: 驱动器上创建名为 TEMP 的目录。[Visual Basic] 
    <%@ Page Language="VB" AutoEventWireup="True" %><html>
     <head>
     
        <script language="VB" runat="server">
           Sub Button1_Click(Source As Object, e As EventArgs)
                
                If Text1.Value = "" Then
                    Span1.InnerHtml = "Error: you must enter a file name"
                    Return
                End If
                
                If Not (File1.PostedFile Is Nothing) Then
                    Try
                        File1.PostedFile.SaveAs(("c:\temp\" & Text1.Value))
                        Span1.InnerHtml = "File uploaded successfully to <b>c:\temp\" & _
                                          Text1.Value & "</b> on the Web server"
                    Catch exc As Exception
                        Span1.InnerHtml = "Error saving file <b>c:\temp\" & _
                                          Text1.Value & "</b><br>" & exc.ToString()
                    End Try
                End If
            End Sub 'Button1_Click 
        </script>
     
     </head>
     <body>
     
        <h3>HtmlInputFile Sample</h3>
     
        <form enctype="multipart/form-data" runat="server">
     
           Select File to Upload: 
           <input id="File1" 
                  type="file" 
                  runat="server">
     
           <p>
           Save as filename (no path): 
           <input id="Text1" 
                  type="text" 
                  runat="server">
     
           <p>
           <span id=Span1 
                 style="font: 8pt verdana;" 
                 runat="server" />
     
           <p>
           <input type=button 
                  id="Button1" 
                  value="Upload" 
                  OnServerClick="Button1_Click" 
                  runat="server">
     
        </form>
     
     </body>
     </html>[C#] 
    <%@ Page Language="C#" AutoEventWireup="True" %><html>
     <head>
     
        <script language="C#" runat="server">
     
           void Button1_Click(object Source, EventArgs e) 
           {
     
              if (Text1.Value == "") 
              {
                 Span1.InnerHtml = "Error: you must enter a file name";
                 return;
              }
     
              if (File1.PostedFile != null) 
              {
                 try
                 {
                    File1.PostedFile.SaveAs("c:\\temp\\"+Text1.Value);
                    Span1.InnerHtml = "File uploaded successfully to <b>c:\\temp\\" + 
                                      Text1.Value + "</b> on the Web server";
                 }
                 catch (Exception exc) 
                 {
                    Span1.InnerHtml = "Error saving file <b>c:\\temp\\" + 
                                      Text1.Value + "</b><br>" + exc.ToString();
                 }
              }
           }
     
        </script>
     
     </head>
     <body>
     
        <h3>HtmlInputFile Sample</h3>
     
        <form enctype="multipart/form-data" runat="server">
     
           Select File to Upload: 
           <input id="File1" 
                  type="file" 
                  runat="server">
     
           <p>
           Save as filename (no path): 
           <input id="Text1" 
                  type="text" 
                  runat="server">
     
           <p>
           <span id=Span1 
                 style="font: 8pt verdana;" 
                 runat="server" />
     
           <p>
           <input type=button 
                  id="Button1" 
                  value="Upload" 
                  OnServerClick="Button1_Click" 
                  runat="server">
     
        </form>
     
     </body>
     </html>[JScript] 
    <%@ Page Language="JScript" AutoEventWireup="True" %><html>
     <head>
     
        <script language="JSCRIPT" runat="server">
           function Button1_Click(source : Object, e : EventArgs){
                
                if(Text1.Value == ""){
                    Span1.InnerHtml = "Error: you must enter a file name"
                    return
                }
                
                if(File1.PostedFile != null){
                    try{
                        File1.PostedFile.SaveAs(("c:\\temp\\" + Text1.Value))
                        Span1.InnerHtml = "File uploaded successfully to <b>c:\\temp\\"
                                        + Text1.Value + "</b> on the Web server"
                    }catch(exc : Exception){
                        Span1.InnerHtml = "Error saving file <b>c:\\temp\\"
                                        + Text1.Value + "</b><br>" + exc.ToString()
                    }
                }
            }
        </script>
     
     </head>
     <body>
     
        <h3>HtmlInputFile Sample</h3>
     
        <form enctype="multipart/form-data" runat="server">
     
           Select File to Upload: 
           <input id="File1" 
                  type="file" 
                  runat="server">
     
           <p>
           Save as filename (no path): 
           <input id="Text1" 
                  type="text" 
                  runat="server">
     
           <p>
           <span id=Span1 
                 style="font: 8pt verdana;" 
                 runat="server" />
     
           <p>
           <input type=button 
                  id="Button1" 
                  value="Upload" 
                  OnServerClick="Button1_Click" 
                  runat="server">
     
        </form>
     
     </body>
     </html>[C++] 没有可用于 C++ 的示例。若要查看 Visual Basic、C# 或 JScript 示例,请单击页左上角的“语言筛选器”按钮 。要求
    命名空间: System.Web.UI.HtmlControls平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列程序集: System.Web (在 System.Web.dll 中)
      

  2.   

    对了,这里是asp.net 不是asp
      

  3.   

    意思就是说.net只需要一句话搞定,这就是.net优于asp的地方