WebClient.UploadFile Metoda

Definicja

Przekazuje plik lokalny do zasobu przy użyciu określonego identyfikatora URI.

Przeciążenia

UploadFile(String, String)

Przekazuje określony plik lokalny do zasobu z określonym identyfikatorem URI.

UploadFile(Uri, String)

Przekazuje określony plik lokalny do zasobu z określonym identyfikatorem URI.

UploadFile(String, String, String)

Przekazuje określony plik lokalny do określonego zasobu przy użyciu określonej metody.

UploadFile(Uri, String, String)

Przekazuje określony plik lokalny do określonego zasobu przy użyciu określonej metody.

UploadFile(String, String)

Źródło:
WebClient.cs
Źródło:
WebClient.cs
Źródło:
WebClient.cs

Przekazuje określony plik lokalny do zasobu z określonym identyfikatorem 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()

Parametry

address
String

Identyfikator URI zasobu do odbierania pliku. Na przykład ftp://localhost/samplefile.txt.

fileName
String

Plik do wysłania do zasobu. Na przykład "samplefile.txt".

Zwraca

Byte[]

Tablica Byte zawierająca treść odpowiedzi z zasobu.

Wyjątki

Parametr address to null.

-lub-

Parametr fileName to null.

Identyfikator URI utworzony przez połączenie BaseAddresselementu i address jest nieprawidłowy.

-lub-

fileName is null, is Empty, zawiera nieprawidłowe znaki lub nie istnieje.

-lub-

Wystąpił błąd podczas przekazywania pliku.

-lub-

Nie było odpowiedzi z serwera hostowania zasobu.

-lub-

Nagłówek Content-type zaczyna się od multipart.

Przykłady

Poniższy przykład kodu przekazuje określony plik do określonego identyfikatora URI przy użyciu polecenia UploadFile. Każda odpowiedź zwrócona przez serwer jest wyświetlana w konsoli programu .

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))

Poniższy przykład kodu przedstawia stronę ASP.NET, która może akceptować opublikowane pliki i jest odpowiednia do użycia z UploadFile metodą . Strona musi znajdować się na serwerze sieci Web. Jego adres zawiera wartość address parametru UploadFile metody.

<%@ 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>

Uwagi

Metoda UploadFile wysyła plik lokalny do zasobu. Ta metoda używa polecenia STOR do przekazania zasobu FTP. W przypadku zasobu HTTP jest używana metoda POST.

Ta metoda blokuje przekazywanie pliku. Aby kontynuować wykonywanie podczas oczekiwania na odpowiedź serwera, użyj jednej z UploadFileAsync metod.

Metoda jest definiowana POST przez protokół HTTP. Jeśli bazowe żądanie nie używa protokołu HTTP i POST nie jest zrozumiałe dla serwera, podstawowe klasy protokołów określają, co się dzieje. WebException Zazwyczaj element jest zgłaszany z ustawioną właściwościąStatus, aby wskazać błąd.

BaseAddress Jeśli właściwość nie jest pustym ciągiem ("") i address nie zawiera bezwzględnego identyfikatora URI, musi być względnym identyfikatorem URI połączonym address z BaseAddress w celu utworzenia bezwzględnego identyfikatora URI żądanych danych. QueryString Jeśli właściwość nie jest pustym ciągiem, jest dołączana do addresselementu .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy

UploadFile(Uri, String)

Źródło:
WebClient.cs
Źródło:
WebClient.cs
Źródło:
WebClient.cs

Przekazuje określony plik lokalny do zasobu z określonym identyfikatorem 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()

Parametry

address
Uri

Identyfikator URI zasobu do odbierania pliku. Na przykład ftp://localhost/samplefile.txt.

fileName
String

Plik do wysłania do zasobu. Na przykład "samplefile.txt".

Zwraca

Byte[]

Tablica Byte zawierająca treść odpowiedzi z zasobu.

Wyjątki

Parametr address to null.

-lub-

Parametr fileName to null.

Identyfikator URI utworzony przez połączenie BaseAddresselementu i address jest nieprawidłowy.

-lub-

fileName is null, is Empty, zawiera nieprawidłowe znaki lub nie istnieje.

-lub-

Wystąpił błąd podczas przekazywania pliku.

-lub-

Nie było odpowiedzi z serwera hostowania zasobu.

-lub-

Nagłówek Content-type zaczyna się od multipart.

Uwagi

Metoda UploadFile wysyła plik lokalny do zasobu. Ta metoda używa polecenia STOR do przekazania zasobu FTP. W przypadku zasobu HTTP jest używana metoda POST.

Ta metoda blokuje przekazywanie pliku. Aby kontynuować wykonywanie podczas oczekiwania na odpowiedź serwera, użyj jednej z UploadFileAsync metod.

Metoda jest definiowana POST przez protokół HTTP. Jeśli bazowe żądanie nie używa protokołu HTTP i POST nie jest zrozumiałe dla serwera, podstawowe klasy protokołów określają, co się dzieje. WebException Zazwyczaj element jest zgłaszany z ustawioną właściwościąStatus, aby wskazać błąd.

BaseAddress Jeśli właściwość nie jest pustym ciągiem ("") i address nie zawiera bezwzględnego identyfikatora URI, musi być względnym identyfikatorem URI połączonym address z BaseAddress w celu utworzenia bezwzględnego identyfikatora URI żądanych danych. QueryString Jeśli właściwość nie jest pustym ciągiem, jest dołączana do addresselementu .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy

UploadFile(String, String, String)

Źródło:
WebClient.cs
Źródło:
WebClient.cs
Źródło:
WebClient.cs

Przekazuje określony plik lokalny do określonego zasobu przy użyciu określonej metody.

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()

Parametry

address
String

Identyfikator URI zasobu do odbierania pliku.

method
String

Metoda używana do wysyłania pliku do zasobu. Jeśli nullwartość domyślna to POST dla protokołu HTTP i STOR dla protokołu FTP.

fileName
String

Plik do wysłania do zasobu.

Zwraca

Byte[]

Tablica Byte zawierająca treść odpowiedzi z zasobu.

Wyjątki

Parametr address to null.

-lub-

Parametr fileName to null.

Identyfikator URI utworzony przez połączenie BaseAddresselementu i address jest nieprawidłowy.

-lub-

fileName is null, is Empty, zawiera nieprawidłowe znaki lub nie istnieje.

-lub-

Wystąpił błąd podczas przekazywania pliku.

-lub-

Nie było odpowiedzi z serwera hostowania zasobu.

-lub-

Nagłówek Content-type zaczyna się od multipart.

Przykłady

Poniższy przykład kodu przekazuje określony plik do określonego identyfikatora URI przy użyciu polecenia UploadFile. Każda odpowiedź zwrócona przez serwer jest wyświetlana w konsoli programu .

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))

Poniższy przykład kodu przedstawia stronę ASP.NET, która może akceptować opublikowane pliki i jest odpowiednia do użycia z UploadFile metodą . Strona musi znajdować się na serwerze sieci Web. Jego adres zawiera wartość address parametru UploadFile metody.

<%@ 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>

Uwagi

Gdy adres określa zasób HTTP, UploadFile metoda wysyła plik lokalny do zasobu przy użyciu metody HTTP określonej w parametrze method i zwraca dowolną odpowiedź z serwera. Ta metoda blokuje przekazywanie pliku. Aby kontynuować wykonywanie podczas oczekiwania na odpowiedź serwera, użyj jednej z UploadFileAsync metod.

method Jeśli parametr określa czasownik, który nie jest rozumiany przez serwer lub address zasób, podstawowe klasy protokołów określają, co się dzieje. WebException Zazwyczaj obiekt jest zgłaszany z właściwością ustawioną w Status celu wskazania błędu.

BaseAddress Jeśli właściwość nie jest pustym ciągiem ("") i address nie zawiera bezwzględnego identyfikatora URI, musi być względnym identyfikatorem URI połączonym address z BaseAddress w celu utworzenia bezwzględnego identyfikatora URI żądanych danych. QueryString Jeśli właściwość nie jest ciągiem pustym, jest dołączana do addresselementu .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy

UploadFile(Uri, String, String)

Źródło:
WebClient.cs
Źródło:
WebClient.cs
Źródło:
WebClient.cs

Przekazuje określony plik lokalny do określonego zasobu przy użyciu określonej metody.

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()

Parametry

address
Uri

Identyfikator URI zasobu do odbierania pliku.

method
String

Metoda używana do wysyłania pliku do zasobu. Jeśli nullwartość domyślna to POST dla protokołu HTTP i STOR dla protokołu FTP.

fileName
String

Plik do wysłania do zasobu.

Zwraca

Byte[]

Tablica Byte zawierająca treść odpowiedzi z zasobu.

Wyjątki

Parametr address ma wartość null.

-lub-

Parametr fileName ma wartość null.

Identyfikator URI utworzony przez połączenie elementu BaseAddressi address jest nieprawidłowy.

-lub-

fileName to null, jest Empty, zawiera nieprawidłowe znaki lub nie istnieje.

-lub-

Wystąpił błąd podczas przekazywania pliku.

-lub-

Nie było odpowiedzi z serwera hostowania zasobu.

-lub-

Nagłówek Content-type zaczyna się od multipart.

Uwagi

Gdy adres określa zasób HTTP, UploadFile metoda wysyła plik lokalny do zasobu przy użyciu metody HTTP określonej w parametrze method i zwraca dowolną odpowiedź z serwera. Ta metoda blokuje przekazywanie pliku. Aby kontynuować wykonywanie podczas oczekiwania na odpowiedź serwera, użyj jednej z UploadFileAsync metod.

method Jeśli parametr określa czasownik, który nie jest rozumiany przez serwer lub address zasób, podstawowe klasy protokołów określają, co się dzieje. WebException Zazwyczaj obiekt jest zgłaszany z właściwością ustawioną w Status celu wskazania błędu.

BaseAddress Jeśli właściwość nie jest pustym ciągiem ("") i address nie zawiera bezwzględnego identyfikatora URI, musi być względnym identyfikatorem URI połączonym address z BaseAddress w celu utworzenia bezwzględnego identyfikatora URI żądanych danych. QueryString Jeśli właściwość nie jest ciągiem pustym, jest dołączana do addresselementu .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy