Windows Phone 8 및 Windows 8은 HTTP POST Multipart/Form-Data를 사용하여 서버에 파일을 업로드합니다
Windows Phone 8 또는 Windows 8에서 HTTP POST multipart/form-data를 사용하여 서버에 파일을 업로드하려면 다음 단계를 따라야 합니다.
HttpWebRequest를 사용하여 파일 업로드를 시도하는 코드 조각을 제공하셨습니다. 그러나 코드에는 수정해야 할 몇 가지 문제가 있습니다.
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);
이 코드는 로컬 저장소가 아닌 패키지 설치 디렉터리에서 파일을 가져옵니다. var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME);
으로 바꿔야 합니다. var res = await HttpPost(Util.UPLOAD_BACKUP, fileBytes);
이 코드는 비동기 HTTP POST 요청을 시작하지만 결과를 기다리지 않습니다. res.Wait();
을 호출하여 결과를 기다려야 합니다. 다음은 multipart/form-data를 사용하여 파일을 업로드하도록 코드를 수정하는 방법의 예입니다.
<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID private async void HttpPost(byte[] fileBytes) { HttpClient httpClient = new HttpClient(); MultipartFormDataContent multipartContent = new MultipartFormDataContent(); HttpContent fileContent = new ByteArrayContent(fileBytes); multipartContent.Add(fileContent, "file", "filename.db"); multipartContent.Add(new StringContent(userid), "userid", "userdata.txt"); var response = await httpClient.PostAsync("http://www.myserver.com/upload.php", multipartContent); // ... }</code>
Windows 8에서는 HttpClient 클래스를 사용하여 multipart/form-data를 사용하여 파일을 업로드할 수 있습니다. 수행 방법의 예는 다음과 같습니다.
<code class="language-csharp">//假设您还有一个名为“userid”的字符串变量,其中包含用户 ID public async Task Upload(byte[] fileBytes) { using (HttpClient httpClient = new HttpClient()) { using (MultipartFormDataContent form = new MultipartFormDataContent()) { form.Add(new StringContent(username), "username"); form.Add(new StringContent(useremail), "email"); form.Add(new StringContent(password), "password"); form.Add(new ByteArrayContent(fileBytes, 0, fileBytes.Length), "profile_pic", "hello1.jpg"); HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", form); // ... } } }</code>
위 내용은 Windows Phone 8 및 Windows 8에서 HTTP POST Multipart/Form-Data를 통해 파일을 업로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!