Udostępnij za pośrednictwem


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 przy użyciu określonego identyfikatora URI.

UploadFile(Uri, String)

Przekazuje określony plik lokalny do zasobu przy użyciu określonego identyfikatora 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 przy użyciu określonego identyfikatora 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 jest null.

-lub-

Parametr fileName jest null.

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

-lub-

fileName jest 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.

Przykłady

Poniższy przykład kodu przekazuje określony plik do określonego identyfikatora URI przy użyciu 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 metodą UploadFile. Strona musi znajdować się na serwerze sieci Web. Jego adres zawiera wartość parametru address metody UploadFile.

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

Ostrożność

WebRequest, HttpWebRequest, ServicePointi WebClient są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.

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 metod UploadFileAsync.

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

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

Nuta

Ten element członkowski generuje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .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 przy użyciu określonego identyfikatora 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 jest null.

-lub-

Parametr fileName jest null.

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

-lub-

fileName jest 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

Ostrożność

WebRequest, HttpWebRequest, ServicePointi WebClient są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.

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 metod UploadFileAsync.

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

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

Nuta

Ten element członkowski generuje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .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 null, wartość 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 jest null.

-lub-

Parametr fileName jest null.

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

-lub-

fileName jest 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.

Przykłady

Poniższy przykład kodu przekazuje określony plik do określonego identyfikatora URI przy użyciu 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 metodą UploadFile. Strona musi znajdować się na serwerze sieci Web. Jego adres zawiera wartość parametru address metody UploadFile.

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

Ostrożność

WebRequest, HttpWebRequest, ServicePointi WebClient są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.

Gdy adres określa zasób HTTP, metoda UploadFile 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 metod UploadFileAsync.

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

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

Nuta

Ten element członkowski generuje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .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 null, wartość 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 jest null.

-lub-

Parametr fileName jest null.

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

-lub-

fileName jest 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

Ostrożność

WebRequest, HttpWebRequest, ServicePointi WebClient są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.

Gdy adres określa zasób HTTP, metoda UploadFile 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 metod UploadFileAsync.

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

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

Nuta

Ten element członkowski generuje informacje śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .NET Framework.

Dotyczy