如何将文件上传到亚马逊EC2

时间:2017-02-22 04:00:14

标签: php amazon-web-services amazon-ec2

我正在尝试从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";
    }
}

?>

1 个答案:

答案 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