2017-02-22 25 views
0

私はアンドロイドからamazon EC2にファイルをアップロードしようとしています。しかし、ファイルをアップロードするたびに、予期せぬレスポンスコード500のエラーが発生します。ユーザーがデータベースにファイルをアップロードするための適切なアクセス許可を持っていないため、これはわかりますか?問題はコードではなくamazon EC2インスタンスにあることがわかります。しかし、以下は私のPHPコードをサーバーにアップロードするためのものです。まず、アップロードフォルダ(/ var/www/html/uploads)を入力する正しい方法は?どのように私はこの作業を得ることができます上の任意の助けが素晴らしいだろう。amazonにファイルをアップロードする方法EC2

<?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

ちょうど少数のノート:

まず、あなたは、サーバーに送信する前multipart/form-dataのENCTYPEでアプリからあなたのデータを送信するようにしてください。

第二には、この単純化されたコードの変種てみてください:WWWのデータをApacheを使用していて、ユーザ名があると仮定すると、

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"; 
} 

そして最後に、あなたはそれがに書き込むことができることを確認する必要がありますアップロードフォルダ:

sudo chown www-data:www-data /var/www/html/uploads 
sudo chmod 755 /var/www/html/uploads 
+0

私はchownコマンドを試してみるとエラーが発生しますが、www-データユーザーはありません。私はこれにかなり新しい...外部のデバイスから接続しようとしているすべてのユーザーは、www - データユーザーですか?どのように私はそのユーザーが私のデータベース上にあるのかを見つけることができますか? – Phill

+0

多くのLinuxディストリビューションでは、www-dataはApache Webサーバーを実行するユーザーです。つまり、このインスタンスのPHPスクリプトで行われるすべての処理は、そのユーザーとグループのアクセス許可で行われます。 Apache Webサーバーを実行していると仮定しています。そうでない場合は、サーバー上で実行して、Androidアプリケーションからの要求を処理していますか? – avip

関連する問題