我一直在尝试从xamarin表单应用程序上传图片到php服务器,但似乎无法正常工作。服务器收到一个空的$_FILES请求。这是c#代码。
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";
}
2条答案
按热度按时间nwwlzxa71#
我知道这是一个老职位,但这是我如何上传图像从Xamarin表单到PHP http://gjhdigital.com/xamarin/xamarin-forms-upload-image-to-php/
Xamarin C#代码
PHP代码
yiytaume2#
AND运算符对你来说真的不是一个好的选择。(在第4行)。有时它会显示一些真正意想不到的行为。(我可以向你推荐'AND' vs '&&' as operator以获得更多信息)。
如果你想要一个逻辑AND,可以使用&&运算符。