다음을 통해 공유


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 null, Empty, 잘못된 문자를 포함하거나 존재하지 않습니다.

-또는-

파일을 업로드하는 동안 오류가 발생했습니다.

-또는-

리소스를 호스팅하는 서버의 응답이 없습니다.

-또는-

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

다음 코드 예제에서는 게시된 파일을 수락할 수 있고 UploadFile 메서드와 함께 사용하기에 적합한 ASP.NET 페이지를 보여줍니다. 페이지는 웹 서버에 있어야 합니다. 해당 주소는 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>

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

UploadFile 메서드는 리소스에 로컬 파일을 보냅니다. 이 메서드는 STOR 명령을 사용하여 FTP 리소스를 업로드합니다. HTTP 리소스의 경우 POST 메서드가 사용됩니다.

이 메서드는 파일을 업로드하는 동안 차단합니다. 서버의 응답을 기다리는 동안 실행을 계속하려면 UploadFileAsync 메서드 중 하나를 사용합니다.

POST 메서드는 HTTP에 의해 정의됩니다. 기본 요청이 HTTP를 사용하지 않고 서버에서 POST 인식할 수 없는 경우 기본 프로토콜 클래스에서 발생하는 작업을 결정합니다. 일반적으로 오류를 나타내기 위해 Status 속성이 설정된 WebException throw됩니다.

BaseAddress 속성이 빈 문자열("")이 아니고 address 절대 URI를 포함하지 않는 경우 address 요청된 데이터의 절대 URI를 형성하기 위해 BaseAddress 결합된 상대 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 null, Empty, 잘못된 문자를 포함하거나 존재하지 않습니다.

-또는-

파일을 업로드하는 동안 오류가 발생했습니다.

-또는-

리소스를 호스팅하는 서버의 응답이 없습니다.

-또는-

Content-type 헤더는 multipart시작합니다.

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

UploadFile 메서드는 리소스에 로컬 파일을 보냅니다. 이 메서드는 STOR 명령을 사용하여 FTP 리소스를 업로드합니다. HTTP 리소스의 경우 POST 메서드가 사용됩니다.

이 메서드는 파일을 업로드하는 동안 차단합니다. 서버의 응답을 기다리는 동안 실행을 계속하려면 UploadFileAsync 메서드 중 하나를 사용합니다.

POST 메서드는 HTTP에 의해 정의됩니다. 기본 요청이 HTTP를 사용하지 않고 서버에서 POST 인식할 수 없는 경우 기본 프로토콜 클래스에서 발생하는 작업을 결정합니다. 일반적으로 오류를 나타내기 위해 Status 속성이 설정된 WebException throw됩니다.

BaseAddress 속성이 빈 문자열("")이 아니고 address 절대 URI를 포함하지 않는 경우 address 요청된 데이터의 절대 URI를 형성하기 위해 BaseAddress 결합된 상대 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 null, Empty, 잘못된 문자를 포함하거나 존재하지 않습니다.

-또는-

파일을 업로드하는 동안 오류가 발생했습니다.

-또는-

리소스를 호스팅하는 서버의 응답이 없습니다.

-또는-

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

다음 코드 예제에서는 게시된 파일을 수락할 수 있고 UploadFile 메서드와 함께 사용하기에 적합한 ASP.NET 페이지를 보여줍니다. 페이지는 웹 서버에 있어야 합니다. 해당 주소는 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>

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

주소가 HTTP 리소스를 지정하는 경우 UploadFile 메서드는 method 매개 변수에 지정된 HTTP 메서드를 사용하여 리소스에 로컬 파일을 보내고 서버의 응답을 반환합니다. 이 메서드는 파일을 업로드하는 동안 차단합니다. 서버의 응답을 기다리는 동안 실행을 계속하려면 UploadFileAsync 메서드 중 하나를 사용합니다.

method 매개 변수가 서버 또는 address 리소스에서 인식할 수 없는 동사를 지정하는 경우 기본 프로토콜 클래스에서 발생되는 내용을 결정합니다. 일반적으로 오류를 나타내기 위해 Status 속성이 설정된 WebException throw됩니다.

BaseAddress 속성이 빈 문자열("")이 아니고 address 절대 URI를 포함하지 않는 경우 address 요청된 데이터의 절대 URI를 형성하기 위해 BaseAddress 결합된 상대 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 null, Empty, 잘못된 문자를 포함하거나 존재하지 않습니다.

-또는-

파일을 업로드하는 동안 오류가 발생했습니다.

-또는-

리소스를 호스팅하는 서버의 응답이 없습니다.

-또는-

Content-type 헤더는 multipart시작합니다.

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

주소가 HTTP 리소스를 지정하는 경우 UploadFile 메서드는 method 매개 변수에 지정된 HTTP 메서드를 사용하여 리소스에 로컬 파일을 보내고 서버의 응답을 반환합니다. 이 메서드는 파일을 업로드하는 동안 차단합니다. 서버의 응답을 기다리는 동안 실행을 계속하려면 UploadFileAsync 메서드 중 하나를 사용합니다.

method 매개 변수가 서버 또는 address 리소스에서 인식할 수 없는 동사를 지정하는 경우 기본 프로토콜 클래스에서 발생되는 내용을 결정합니다. 일반적으로 오류를 나타내기 위해 Status 속성이 설정된 WebException throw됩니다.

BaseAddress 속성이 빈 문자열("")이 아니고 address 절대 URI를 포함하지 않는 경우 address 요청된 데이터의 절대 URI를 형성하기 위해 BaseAddress 결합된 상대 URI여야 합니다. QueryString 속성이 빈 문자열이 아니면 address추가됩니다.

메모

이 멤버는 애플리케이션에서 네트워크 추적을 사용하도록 설정할 때 추적 정보를 출력합니다. 자세한 내용은 .NET Framework네트워크 추적을 참조하세요.

적용 대상