我正在尝试从android上传文件到亚马逊EC2。但每当我上传文件时,我都会收到意外的响应代码500错误。据我所知,这是因为用户没有将文件上传到数据库的正确权限?我知道问题出在亚马逊EC2实例而不是代码上。但下面是我上传到服务器的PHP代码。首先是进入上传文件夹的正确方法(/ var / www / html / uploads)?任何关于如何使这项工作得到帮助的帮助都会很棒。
<?php
if(isset($_POST['image'])){
echo "in";
$image = $_POST['image'];
upload($_POST['image']);
exit;
}
else{
echo "image_not_in";
exit;
}
function upload($image){
$now = DateTime::createFromFormat('U.u', microtime(true));
$id = "pleeease";
$upload_folder = "/var/www/html/upload";
$path = "$upload_folder/$id.jpg";
if(file_put_contents($path, base64_decode($image)) != false){
echo "uploaded_success"
}
else{
echo "uploaded_failed";
}
}
?>
答案 0 :(得分:0)
只是几点说明:
首先,您应该确保在提交到服务器之前使用enctype multipart/form-data
从应用程序发送数据。
其次,尝试这个简化代码的变体:
if(isset($_FILES['image']))
{
$fileTmp = $_FILES['image']['tmp_name'];
$fileName = $_FILES['image']['name'];
move_uploaded_file($fileTmp, "/var/www/html/uploads/" . $fileName);
echo "Success";
}
else
{
echo "Error";
}
最后,假设您使用的是Apache并且用户名是www-data,您需要确保它可以写入上传文件夹:
sudo chown www-data:www-data /var/www/html/uploads
sudo chmod 755 /var/www/html/uploads