xamarin 양식 응용 프로그램에서 PHP 서버로 사진을 업로드하려했지만 작동하지 않는 것 같습니다. 서버가 빈 $ _FILES 요청을받습니다. 이것은 C# 코드입니다.xamarin 양식에서 PHP 서버로 사진 업로드
public async Task<bool> Upload(MediaFile mediaFile, string filename)
{
byte[] bitmapData;
var stream = new MemoryStream();
mediaFile.GetStream().CopyTo(stream);
bitmapData = stream.ToArray();
var fileContent = new ByteArrayContent(bitmapData);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "fileUpload",
FileName = filename
};
string boundary = "---8393774hhy37373773";
MultipartFormDataContent multipartContent = new MultipartFormDataContent(boundary);
multipartContent.Add(fileContent);
HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.PostAsync("http://www.url.com/upload.php", multipartContent);
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
string content = await response.Content.ReadAsStringAsync();
return true;
}
return false;
}
다음은 업로드 된 이미지를 수신하는 PHP 파일입니다. 게시 된 이미지의 내용을 파일에 저장하려고했지만 파일에는 빈 배열 만 있고 항상 "실패"가 반환됩니다. 제발 내가 잘못 놓친 게 뭐지? 웹 검색했지만 문제를 이해할 수 없습니다.
$uploads_dir = 'uploads/';
$req_dump = print_r($_FILES, true);
$fp = file_put_contents('data.txt', $req_dump);
if (isset($_FILES["fileUpload"]["tmp_name"]) AND is_uploaded_file($_FILES["fileUpload"]["tmp_name"]))
{
$tmp_name = $_FILES["fileUpload"]["tmp_name"];
$name = $_FILES["fileUpload"]["name"];
$Result = move_uploaded_file($tmp_name, "$uploads_dir/$name");
echo "Success";
}
else
{
echo "Failure";
}
될 것이다. 그럼 그냥 PHP에서'move_uploaded_file ($ _ FILES [ "image"] [ "tmp_name"], 'path');'잘 작동합니다. 그냥 간단한 것으로 시작한 다음 상황을 추가하여 어떤 일이 발생하는지 확인하십시오. – dev