【问题标题】:how to upload to files to amazon EC2如何将文件上传到亚马逊 EC2
【发布时间】:2017-07-11 23:15:59
【问题描述】:

我正在尝试将文件从 android 上传到亚马逊 EC2。但是,每当我上传文件时,我都会收到 Unexpected response code 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";
    }
}

?>

【问题讨论】:

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


    【解决方案1】:

    只是一些注意事项:

    首先,您应该确保在提交到服务器之前使用编码类型为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
    

    【讨论】:

    • 但是当我尝试执行 chown 命令时出现错误,没有 www-data 用户。我对此很陌生...... www-data 用户是任何试图从外部设备连接的用户吗?以及如何找到该用户在我的数据库中的内容?
    • 在许多 Linux 发行版中,www-data 是运行 Apache Web 服务器的用户。这意味着 Apache 所做的一切,在此实例中为 PHP 脚本,都是在该用户和组的权限下完成的。我假设您正在运行 Apache Web 服务器,如果没有,您在服务器上运行什么来处理来自您的 Android 应用程序的请求?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多