>백엔드 개발 >PHP 튜토리얼 >Windows Phone 8에서 HTTP POST Multipart/Form-Data를 사용하여 서버에 파일을 업로드하는 방법은 무엇입니까?

Windows Phone 8에서 HTTP POST Multipart/Form-Data를 사용하여 서버에 파일을 업로드하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 09:51:15545검색

How to Upload Files to a Server using HTTP POST Multipart/Form-Data in Windows Phone 8?

Windows Phone 8에서 HTTP POST Multipart/Form-Data를 사용하여 서버에 파일 업로드

Windows Phone 8에서 HTTP POST multipart/form을 통해 서버에 파일 업로드 -data에는 HttpWebRequest 클래스 사용이 포함됩니다. 구현 방법은 다음과 같습니다.

async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
    byte[] fileBytes = null;
    using (var stream = await file.OpenReadAsync())
    {
        fileBytes = new byte[stream.Size];
        using (var reader = new DataReader(stream))
        {
            await reader.LoadAsync((uint)stream.Size);
            reader.ReadBytes(fileBytes);
        }
    }
    
    // Construct HTTP request with multipart/form-data content type and userID data
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");
    httpWebRequest.ContentType = "multipart/form-data";
    var boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
    httpWebRequest.Method = "POST";
    
    // Begin obtaining request stream for writing file bytes and userID data
    var asyncResult = httpWebRequest.BeginGetRequestStream((ar) => { GetRequestStreamCallback(ar, fileBytes, boundary); }, httpWebRequest); 
}

private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData, string boundary)  
{
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;  
    Stream postStream = request.EndGetRequestStream(asynchronousResult);  
    
    // Write file bytes to request stream
    postStream.Write(postData, 0, postData.Length);  
    
    // Write userID data to request stream
    var lineBreak = "\r\n";
    var formData = $"--{boundary}{lineBreak}Content-Disposition: form-data; name=\"userid\"{lineBreak}{lineBreak}SOME_ID{lineBreak}";
    var formDataBytes = System.Text.Encoding.UTF8.GetBytes(formData);
    postStream.Write(formDataBytes, 0, formDataBytes.Length);
    
    // Closing boundary string
    var closingBoundary = $"--{boundary}--{lineBreak}";
    var closingBoundaryBytes = System.Text.Encoding.UTF8.GetBytes(closingBoundary);
    postStream.Write(closingBoundaryBytes, 0, closingBoundaryBytes.Length);  
    
    postStream.Close();  
    var asyncResult = request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);  
}  

private void GetResponseCallback(IAsyncResult asynchronousResult)  
{  
    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;  
    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);  
    // ... Handle response
}  

위 내용은 Windows Phone 8에서 HTTP POST Multipart/Form-Data를 사용하여 서버에 파일을 업로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.