Поделиться через


WebClient.UploadFile Метод

Определение

Отправляет локальный файл в ресурс с указанным универсальным кодом ресурса (URI).

Перегрузки

UploadFile(String, String)

Отправляет указанный локальный файл в ресурс с указанным универсальным кодом ресурса (URI).

UploadFile(Uri, String)

Отправляет указанный локальный файл в ресурс с указанным универсальным кодом ресурса (URI).

UploadFile(String, String, String)

Отправляет указанный локальный файл в указанный ресурс с помощью указанного метода.

UploadFile(Uri, String, String)

Отправляет указанный локальный файл в указанный ресурс с помощью указанного метода.

UploadFile(String, String)

Исходный код:
WebClient.cs
Исходный код:
WebClient.cs
Исходный код:
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, содержащий текст ответа из ресурса.

Исключения

Параметр addressnull.

-или-

Параметр fileNamenull.

URI, сформированный объединением BaseAddress, и address является недопустимым.

-или-

fileName null, Empty, содержит недопустимые символы или не существует.

-или-

Произошла ошибка при отправке файла.

-или-

От сервера, на котором размещен ресурс, не было ответа.

-или-

Заголовок Content-type начинается с multipart.

Примеры

Следующий пример кода отправляет указанный файл в указанный универсальный код ресурса (URI) с помощью UploadFile. На консоли отображается любой ответ, возвращаемый сервером.

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. Страница должна находиться на веб-сервере. Его адрес предоставляет значение для параметра address метода 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>

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Метод UploadFile отправляет локальный файл в ресурс. Этот метод использует команду STOR для отправки ресурса FTP. Для ресурса HTTP используется метод POST.

Этот метод блокирует отправку файла. Чтобы продолжить выполнение во время ожидания ответа сервера, используйте один из методов UploadFileAsync.

Метод POST определяется HTTP. Если базовый запрос не использует ПРОТОКОЛ HTTP и POST не понимается сервером, базовые классы протокола определяют, что происходит. Как правило, WebException создается со свойством Status, которое указывает на ошибку.

Если свойство BaseAddress не является пустой строкой ("") и address не содержит абсолютный универсальный код ресурса (URI), address должен быть относительным URI, объединенным с BaseAddress, чтобы сформировать абсолютный URI запрошенных данных. Если свойство QueryString не является пустой строкой, оно добавляется в address.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе Трассировка сети в.NET Framework.

Применяется к

UploadFile(Uri, String)

Исходный код:
WebClient.cs
Исходный код:
WebClient.cs
Исходный код:
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, содержащий текст ответа из ресурса.

Исключения

Параметр addressnull.

-или-

Параметр fileNamenull.

URI, сформированный объединением BaseAddress, и address является недопустимым.

-или-

fileName null, Empty, содержит недопустимые символы или не существует.

-или-

Произошла ошибка при отправке файла.

-или-

От сервера, на котором размещен ресурс, не было ответа.

-или-

Заголовок Content-type начинается с multipart.

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Метод UploadFile отправляет локальный файл в ресурс. Этот метод использует команду STOR для отправки ресурса FTP. Для ресурса HTTP используется метод POST.

Этот метод блокирует отправку файла. Чтобы продолжить выполнение во время ожидания ответа сервера, используйте один из методов UploadFileAsync.

Метод POST определяется HTTP. Если базовый запрос не использует ПРОТОКОЛ HTTP и POST не понимается сервером, базовые классы протокола определяют, что происходит. Как правило, WebException создается со свойством Status, которое указывает на ошибку.

Если свойство BaseAddress не является пустой строкой ("") и address не содержит абсолютный универсальный код ресурса (URI), address должен быть относительным URI, объединенным с BaseAddress, чтобы сформировать абсолютный URI запрошенных данных. Если свойство QueryString не является пустой строкой, оно добавляется в address.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе Трассировка сети в.NET Framework.

Применяется к

UploadFile(String, String, String)

Исходный код:
WebClient.cs
Исходный код:
WebClient.cs
Исходный код:
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, значение по умолчанию — POST для HTTP и STOR для FTP.

fileName
String

Файл для отправки в ресурс.

Возвращаемое значение

Byte[]

Массив Byte, содержащий текст ответа из ресурса.

Исключения

Параметр addressnull.

-или-

Параметр fileNamenull.

URI, сформированный объединением BaseAddress, и address является недопустимым.

-или-

fileName null, Empty, содержит недопустимые символы или не существует.

-или-

Произошла ошибка при отправке файла.

-или-

От сервера, на котором размещен ресурс, не было ответа.

-или-

Заголовок Content-type начинается с multipart.

Примеры

Следующий пример кода отправляет указанный файл в указанный универсальный код ресурса (URI) с помощью UploadFile. На консоли отображается любой ответ, возвращаемый сервером.

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. Страница должна находиться на веб-сервере. Его адрес предоставляет значение для параметра address метода 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>

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Если адрес указывает ресурс HTTP, метод UploadFile отправляет локальный файл ресурсу с помощью метода HTTP, указанного в параметре method, и возвращает любой ответ с сервера. Этот метод блокирует отправку файла. Чтобы продолжить выполнение во время ожидания ответа сервера, используйте один из методов UploadFileAsync.

Если параметр method указывает команду, которая не понимается сервером или ресурсом address, базовые классы протокола определяют, что происходит. Как правило, WebException создается со свойством Status, которое указывает на ошибку.

Если свойство BaseAddress не является пустой строкой ("") и address не содержит абсолютный универсальный код ресурса (URI), address должен быть относительным URI, объединенным с BaseAddress, чтобы сформировать абсолютный URI запрошенных данных. Если свойство QueryString не является пустой строкой, оно добавляется в address.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе Трассировка сети в.NET Framework.

Применяется к

UploadFile(Uri, String, String)

Исходный код:
WebClient.cs
Исходный код:
WebClient.cs
Исходный код:
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, значение по умолчанию — POST для HTTP и STOR для FTP.

fileName
String

Файл для отправки в ресурс.

Возвращаемое значение

Byte[]

Массив Byte, содержащий текст ответа из ресурса.

Исключения

Параметр addressnull.

-или-

Параметр fileNamenull.

URI, сформированный объединением BaseAddress, и address является недопустимым.

-или-

fileName null, Empty, содержит недопустимые символы или не существует.

-или-

Произошла ошибка при отправке файла.

-или-

От сервера, на котором размещен ресурс, не было ответа.

-или-

Заголовок Content-type начинается с multipart.

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Если адрес указывает ресурс HTTP, метод UploadFile отправляет локальный файл ресурсу с помощью метода HTTP, указанного в параметре method, и возвращает любой ответ с сервера. Этот метод блокирует отправку файла. Чтобы продолжить выполнение во время ожидания ответа сервера, используйте один из методов UploadFileAsync.

Если параметр method указывает команду, которая не понимается сервером или ресурсом address, базовые классы протокола определяют, что происходит. Как правило, WebException создается со свойством Status, которое указывает на ошибку.

Если свойство BaseAddress не является пустой строкой ("") и address не содержит абсолютный универсальный код ресурса (URI), address должен быть относительным URI, объединенным с BaseAddress, чтобы сформировать абсолютный URI запрошенных данных. Если свойство QueryString не является пустой строкой, оно добавляется в address.

Заметка

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе Трассировка сети в.NET Framework.

Применяется к