WebClient.UploadFile 方法

定义

将本地文件上传到具有指定 URI 的资源。

重载

UploadFile(String, String)

将指定的本地文件上传到具有指定 URI 的资源。

UploadFile(Uri, String)

将指定的本地文件上传到具有指定 URI 的资源。

UploadFile(String, String, String)

使用指定的方法将指定的本地文件上传到指定资源。

UploadFile(Uri, String, String)

使用指定的方法将指定的本地文件上传到指定资源。

UploadFile(String, String)

Source:
WebClient.cs
Source:
WebClient.cs
Source:
WebClient.cs

将指定的本地文件上传到具有指定 URI 的资源。

public:
 cli::array <System::Byte> ^ UploadFile(System::String ^ address, System::String ^ fileName);
public byte[] UploadFile (string address, string fileName);
member this.UploadFile : string * string -> byte[]
Public Function UploadFile (address As String, fileName As String) As Byte()

参数

address
String

要接收文件的资源的 URI。 例如,ftp://localhost/samplefile.txt。

fileName
String

要发送到资源的文件。 例如,“samplefile.txt”。

返回

Byte[]

包含来自资源的响应正文的 Byte 数组。

例外

address 参数 null

-或-

fileName 参数 null

组合 BaseAddress而形成的 URI 无效,address 无效。

-或-

fileName nullEmpty、包含无效字符或不存在。

-或-

上传文件时出错。

-或-

托管资源的服务器没有响应。

-或-

Content-type 标头以 multipart开头。

示例

下面的代码示例使用 UploadFile将指定文件上传到指定的 URI。 服务器返回的任何响应都显示在主机上。

Console::Write( "\nPlease enter the URI to post data to : " );
String^ uriString = Console::ReadLine();

// Create a new WebClient instance.
WebClient^ myWebClient = gcnew WebClient;
Console::WriteLine( "\nPlease enter the fully qualified path of the file to be uploaded to the URI" );
String^ fileName = Console::ReadLine();
Console::WriteLine( "Uploading {0} to {1} ...", fileName, uriString );

// Upload the file to the URI.
// The 'UploadFile(uriString, fileName)' method implicitly uses HTTP POST method.
array<Byte>^responseArray = myWebClient->UploadFile( uriString, fileName );

// Decode and display the response.
Console::WriteLine( "\nResponse Received::The contents of the file uploaded are: \n {0}", 
    System::Text::Encoding::ASCII->GetString( responseArray ) );
Console.Write("\nPlease enter the URI to post data to : ");
String uriString = Console.ReadLine();

// Create a new WebClient instance.
WebClient myWebClient = new WebClient();

Console.WriteLine("\nPlease enter the fully qualified path of the file to be uploaded to the URI");
string fileName = Console.ReadLine();
Console.WriteLine("Uploading {0} to {1} ...",fileName,uriString);

// Upload the file to the URI.
// The 'UploadFile(uriString,fileName)' method implicitly uses HTTP POST method.
byte[] responseArray = myWebClient.UploadFile(uriString,fileName);

// Decode and display the response.
Console.WriteLine("\nResponse Received. The contents of the file uploaded are:\n{0}", 
    System.Text.Encoding.ASCII.GetString(responseArray));

Console.Write(ControlChars.Cr + "Please enter the URI to post data to : ")
Dim uriString As String = Console.ReadLine()

' Create a new WebClient instance.
Dim myWebClient As New WebClient()

Console.WriteLine(ControlChars.Cr & _
    "Please enter the fully qualified path of the file to be uploaded to the URI")

Dim fileName As String = Console.ReadLine()
Console.WriteLine("Uploading {0} to {1} ...", fileName, uriString)

' Upload the file to the URI.
' The 'UploadFile(uriString,fileName)' method implicitly uses HTTP POST method. 
Dim responseArray As Byte() = myWebClient.UploadFile(uriString, fileName)

' Decode and display the response.
Console.WriteLine(ControlChars.Cr & "Response Received. The contents of the file uploaded are: " & _
    ControlChars.Cr & "{0}", System.Text.Encoding.ASCII.GetString(responseArray))

下面的代码示例演示了一个 ASP.NET 页,该页面可以接受已发布的文件,并且适用于 UploadFile 方法。 页面必须驻留在 Web 服务器上。 其地址为 UploadFile 方法的 address 参数提供值。

<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>

<Script language="C#" runat=server>
void Page_Load(object sender, EventArgs e) {
    
    foreach(string f in Request.Files.AllKeys) {
        HttpPostedFile file = Request.Files[f];
        file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
    }	
}

</Script>
<html>
<body>
<p> Upload complete.  </p>
</body>
</html>
<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>

<Script language="VB" runat=server>
    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        
        Dim f As String
        Dim file
        For Each f In Request.Files.AllKeys
            file = Request.Files(f)
            file.SaveAs("c:\inetpub\test\UploadedFiles\" & file.FileName)
        Next f
        
    End Sub

</Script>
<html>
<body>
<p> Upload complete. </p>
</body>
</html>

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 HttpClient

UploadFile 方法将本地文件发送到资源。 此方法使用 STOR 命令上传 FTP 资源。 对于 HTTP 资源,将使用 POST 方法。

此方法在上传文件时会阻止。 若要在等待服务器的响应时继续执行,请使用 UploadFileAsync 方法之一。

POST 方法由 HTTP 定义。 如果基础请求不使用 HTTP,并且服务器无法理解 POST,则基础协议类将确定发生的情况。 通常,会引发 WebException,并将 Status 属性设置为指示错误。

如果 BaseAddress 属性不是空字符串(“”)且 address 不包含绝对 URI,address 必须是与 BaseAddress 相结合的相对 URI,才能形成所请求数据的绝对 URI。 如果 QueryString 属性不是空字符串,则会将其追加到 address

注意

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework中的 网络跟踪。

适用于

UploadFile(Uri, String)

Source:
WebClient.cs
Source:
WebClient.cs
Source:
WebClient.cs

将指定的本地文件上传到具有指定 URI 的资源。

public:
 cli::array <System::Byte> ^ UploadFile(Uri ^ address, System::String ^ fileName);
public byte[] UploadFile (Uri address, string fileName);
member this.UploadFile : Uri * string -> byte[]
Public Function UploadFile (address As Uri, fileName As String) As Byte()

参数

address
Uri

要接收文件的资源的 URI。 例如,ftp://localhost/samplefile.txt。

fileName
String

要发送到资源的文件。 例如,“samplefile.txt”。

返回

Byte[]

包含来自资源的响应正文的 Byte 数组。

例外

address 参数 null

-或-

fileName 参数 null

组合 BaseAddress而形成的 URI 无效,address 无效。

-或-

fileName nullEmpty、包含无效字符或不存在。

-或-

上传文件时出错。

-或-

托管资源的服务器没有响应。

-或-

Content-type 标头以 multipart开头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 HttpClient

UploadFile 方法将本地文件发送到资源。 此方法使用 STOR 命令上传 FTP 资源。 对于 HTTP 资源,将使用 POST 方法。

此方法在上传文件时会阻止。 若要在等待服务器的响应时继续执行,请使用 UploadFileAsync 方法之一。

POST 方法由 HTTP 定义。 如果基础请求不使用 HTTP,并且服务器无法理解 POST,则基础协议类将确定发生的情况。 通常,会引发 WebException,并将 Status 属性设置为指示错误。

如果 BaseAddress 属性不是空字符串(“”)且 address 不包含绝对 URI,address 必须是与 BaseAddress 相结合的相对 URI,才能形成所请求数据的绝对 URI。 如果 QueryString 属性不是空字符串,则会将其追加到 address

注意

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework中的 网络跟踪。

适用于

UploadFile(String, String, String)

Source:
WebClient.cs
Source:
WebClient.cs
Source:
WebClient.cs

使用指定的方法将指定的本地文件上传到指定资源。

public:
 cli::array <System::Byte> ^ UploadFile(System::String ^ address, System::String ^ method, System::String ^ fileName);
public byte[] UploadFile (string address, string? method, string fileName);
public byte[] UploadFile (string address, string method, string fileName);
member this.UploadFile : string * string * string -> byte[]
Public Function UploadFile (address As String, method As String, fileName As String) As Byte()

参数

address
String

要接收文件的资源的 URI。

method
String

用于将文件发送到资源的方法。 如果 null,则默认为 HTTP 的 POST 和 FTP 的 STOR。

fileName
String

要发送到资源的文件。

返回

Byte[]

包含来自资源的响应正文的 Byte 数组。

例外

address 参数 null

-或-

fileName 参数 null

组合 BaseAddress而形成的 URI 无效,address 无效。

-或-

fileName nullEmpty、包含无效字符或不存在。

-或-

上传文件时出错。

-或-

托管资源的服务器没有响应。

-或-

Content-type 标头以 multipart开头。

示例

下面的代码示例使用 UploadFile将指定文件上传到指定的 URI。 服务器返回的任何响应都显示在主机上。

Console::Write( "\nPlease enter the URL to post data to : " );
String^ uriString = Console::ReadLine();

// Create a new WebClient instance.
WebClient^ myWebClient = gcnew WebClient;
Console::WriteLine
    ("\nPlease enter the fully qualified path of the file to be uploaded to the URL" );
String^ fileName = Console::ReadLine();
Console::WriteLine( "Uploading {0} to {1} ...", fileName, uriString );

// Upload the file to the URL using the HTTP 1.0 POST.
array<Byte>^responseArray = myWebClient->UploadFile( uriString, "POST", fileName );

// Decode and display the response.
Console::WriteLine( "\nResponse Received::The contents of the file uploaded are: \n {0}", 
    System::Text::Encoding::ASCII->GetString( responseArray ));
Console.Write("\nPlease enter the URL to post data to : ");
String uriString = Console.ReadLine();

// Create a new WebClient instance.
WebClient myWebClient = new WebClient();

Console.WriteLine("\nPlease enter the fully qualified path of the file to be uploaded to the URL");
string fileName = Console.ReadLine();

Console.WriteLine("Uploading {0} to {1} ...",fileName,uriString);						
// Upload the file to the URL using the HTTP 1.0 POST.
byte[] responseArray = myWebClient.UploadFile(uriString,"POST",fileName);

// Decode and display the response.
Console.WriteLine("\nResponse Received. The contents of the file uploaded are:\n{0}",
    System.Text.Encoding.ASCII.GetString(responseArray));


Console.Write(ControlChars.Cr + "Please enter the URL to post data to : ")
Dim uriString As String = Console.ReadLine()

' Create a new WebClient instance.
Dim myWebClient As New WebClient()
Console.WriteLine(ControlChars.Cr & _
    "Please enter the fully qualified path of the file to be uploaded to the URL")

Dim fileName As String = Console.ReadLine()
Console.WriteLine("Uploading {0} to {1} ...", fileName, uriString)

' Upload the file to the Url using the HTTP 1.0 POST.
Dim responseArray As Byte() = myWebClient.UploadFile(uriString, "POST", fileName)

' Decode and display the response.
Console.WriteLine(ControlChars.Cr + "Response Received. The contents of the file uploaded are: " & _
    ControlChars.Cr & "{0}", System.Text.Encoding.ASCII.GetString(responseArray))

下面的代码示例演示了一个 ASP.NET 页,该页面可以接受已发布的文件,并且适用于 UploadFile 方法。 页面必须驻留在 Web 服务器上。 其地址为 UploadFile 方法的 address 参数提供值。

<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>

<Script language="C#" runat=server>
void Page_Load(object sender, EventArgs e) {
    
    foreach(string f in Request.Files.AllKeys) {
        HttpPostedFile file = Request.Files[f];
        file.SaveAs("c:\\inetpub\\test\\UploadedFiles\\" + file.FileName);
    }	
}

</Script>
<html>
<body>
<p> Upload complete.  </p>
</body>
</html>
<%@ Import Namespace="System"%>
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Net"%>
<%@ Import NameSpace="System.Web"%>

<Script language="VB" runat=server>
    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        
        Dim f As String
        Dim file
        For Each f In Request.Files.AllKeys
            file = Request.Files(f)
            file.SaveAs("c:\inetpub\test\UploadedFiles\" & file.FileName)
        Next f
        
    End Sub

</Script>
<html>
<body>
<p> Upload complete. </p>
</body>
</html>

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 HttpClient

当地址指定 HTTP 资源时,UploadFile 方法使用 method 参数中指定的 HTTP 方法将本地文件发送到资源,并从服务器返回任何响应。 此方法在上传文件时会阻止。 若要在等待服务器的响应时继续执行,请使用 UploadFileAsync 方法之一。

如果 method 参数指定服务器或 address 资源无法理解的谓词,则基础协议类将确定发生的情况。 通常,会引发 WebException,并将 Status 属性设置为指示错误。

如果 BaseAddress 属性不是空字符串(“”)且 address 不包含绝对 URI,address 必须是与 BaseAddress 相结合的相对 URI,才能形成所请求数据的绝对 URI。 如果 QueryString 属性不是空字符串,则会将其追加到 address

注意

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework中的 网络跟踪。

适用于

UploadFile(Uri, String, String)

Source:
WebClient.cs
Source:
WebClient.cs
Source:
WebClient.cs

使用指定的方法将指定的本地文件上传到指定资源。

public:
 cli::array <System::Byte> ^ UploadFile(Uri ^ address, System::String ^ method, System::String ^ fileName);
public byte[] UploadFile (Uri address, string? method, string fileName);
public byte[] UploadFile (Uri address, string method, string fileName);
member this.UploadFile : Uri * string * string -> byte[]
Public Function UploadFile (address As Uri, method As String, fileName As String) As Byte()

参数

address
Uri

要接收文件的资源的 URI。

method
String

用于将文件发送到资源的方法。 如果 null,则默认为 HTTP 的 POST 和 FTP 的 STOR。

fileName
String

要发送到资源的文件。

返回

Byte[]

包含来自资源的响应正文的 Byte 数组。

例外

address 参数 null

-或-

fileName 参数 null

组合 BaseAddress而形成的 URI 无效,address 无效。

-或-

fileName nullEmpty、包含无效字符或不存在。

-或-

上传文件时出错。

-或-

托管资源的服务器没有响应。

-或-

Content-type 标头以 multipart开头。

注解

谨慎

WebRequestHttpWebRequestServicePointWebClient 已过时,不应将其用于新开发。 请改用 HttpClient

当地址指定 HTTP 资源时,UploadFile 方法使用 method 参数中指定的 HTTP 方法将本地文件发送到资源,并从服务器返回任何响应。 此方法在上传文件时会阻止。 若要在等待服务器的响应时继续执行,请使用 UploadFileAsync 方法之一。

如果 method 参数指定服务器或 address 资源无法理解的谓词,则基础协议类将确定发生的情况。 通常,会引发 WebException,并将 Status 属性设置为指示错误。

如果 BaseAddress 属性不是空字符串(“”)且 address 不包含绝对 URI,address 必须是与 BaseAddress 相结合的相对 URI,才能形成所请求数据的绝对 URI。 如果 QueryString 属性不是空字符串,则会将其追加到 address

注意

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework中的 网络跟踪。

适用于