WebClient.UploadFile Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
Tablica Byte zawierająca treść odpowiedzi z zasobu.
Wyjątki
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
, ServicePoint
i 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
Tablica Byte zawierająca treść odpowiedzi z zasobu.
Wyjątki
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
, ServicePoint
i 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
Tablica Byte zawierająca treść odpowiedzi z zasobu.
Wyjątki
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
, ServicePoint
i 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
Tablica Byte zawierająca treść odpowiedzi z zasobu.
Wyjątki
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
, ServicePoint
i 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.