HttpClient를 사용하여 파일을 PHP 스크립트에 업로드하여 Windows Phone 8.1 응용 프로그램의 서버에 저장하려고합니다.HttpClient를 사용하여 이미지 업로드
여기는 this post에서 얻은 C# 코드입니다.
private async Task<string> GetRawDataFromServer(byte[] data)
{
//Debug.WriteLine("byte[] data length:" + Convert.ToBase64String(data).Length);
var requestContent = new MultipartFormDataContent();
// here you can specify boundary if you need---^
var imageContent = new ByteArrayContent(data);
imageContent.Headers.ContentType =
MediaTypeHeaderValue.Parse("image/jpeg");
requestContent.Add(imageContent, "image", "image.jpg");
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://www.x.net/");
var result = client.PostAsync("test/fileupload.php", requestContent).Result;
return result.Content.ReadAsStringAsync().Result;
}
}
는 그리고이 코드와 나는 PHP 스크립트
<?
function base64_to_image($imageData, $outputfile) {
/* encode & write data (binary) */
$ifp = fopen($outputfile, "wb");
fwrite($ifp, base64_decode($imageData));
fclose($ifp);
/* return output filename */
return($outputfile);
}
if (isset($_POST['image'])) {
base64_to_jpeg($_POST['image'], "image.jpg");
}
else
die("no image data found");
?>
에서 데이터를 검색하지만 항상 얻을 결과는 이미지 파일이 있지만 "데이터가 발견"입니다. POST 매개 변수로 잘못 전달하는 중입니까?
비동기 메소드에'.Result'를 사용하는 대신, 대신에'await'해야합니다 (컴파일러가'async'를 잘못 사용하고 있다고 경고해야합니다). 유선을 통해 전송되는 것을 확인하기 위해 네트워크 추적을 수행 했습니까? –
아니, 솔직히 말해서 어떻게해야할지 모르겠다. – Elektropepi