-1

サーバー A とサーバー Bの 2 つのサーバーがあり、 username、* email *、passwordおよびimage を持つ登録ページがあります。

シンプルなphpスクリプトを使用して、 iOSデバイスから送信された画像をアップロードしています。

新しいユーザーをサーバー Aに登録できました。画像のアップロードは次の場合にうまく機能します

Case 1: Uploading via HTML (Success)
Case 2: Uploading Via app (Success)

しかし、サーバー B (LINUX サーバー)に画像をアップロードしようとすると、画像のアップロードに失敗しました。

Case 1: Uploading via HTML (Success)
Case : Uploading via app (FAILED)

ファイルのアクセス許可が777であることを確認しました。しかし、まだ画像をサーバーにアップロードできません。500 内部エラーを返しています。

実は、以前はサーバー B へのアップロードが機能していました。しかし、突然、それは機能しなくなりました。

画像がアップロードされることを確認するために、さらにどのような条件を確認する必要があるか教えてもらえますか?

4

2 に答える 2

2

CURLを使ってみる

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@/path/file.txt'));
    curl_setopt($ch, CURLOPT_URL, 'http://server2/upload.php');
    curl_exec($ch);
    curl_close($ch);
于 2013-02-04T17:12:38.503 に答える
1

ファイルのアクセス許可を単独で設定しても目的は解決しません。php を実行しているユーザーが書き込み可能なディレクトリupload_tmp_dirに設定していることを確認してください。返されるものを確認し、返されたパスが書き込み可能であることを確認してphp.iniください。sys_get_temp_dir()Linuxサーバーにアクセスできる場合はssh、次のコマンドで一時ディレクトリの権限を確認してください

$ls -ld temp_dir_path_here

もちろん、失敗の原因となる他の問題が存在する可能性があります。サーバーのエラー ログを確認するか、スクリプトの先頭に次のスニペットをコピーしてエラーを設定することで、詳細情報を取得できます。

error_reporting(E_ALL);
ini_set('display_errors', 'on');

完了したら、上記のスニペットを削除します。

于 2013-02-04T17:19:12.810 に答える