ファイルを Amazon s3 filebucket にプッシュしようとしています。
私はhtmlフォームを介してファイルを投稿しています。
このようなファイルへのパスを生成しようとします (フォーム送信で複数のファイルをサポートする必要があるため、$file は foreach の一部です)。
$file['tmp_name'].'/'.$file['name'];
これは、このようなファイルパスを出力します
/Applications/MAMP/tmp/php/phpZDcVQv/pdf.pdf
/Applications/MAMP/tmp/php/ は存在しますが、その中には何もありません。そのフォルダへの全員の読み取りと書き込みのアクセスを設定しました。
ライブラリを使用して画像を Amazon に投稿します: https://github.com/tpyo/amazon-s3-php-classまた、提供したファイルパスが存在しないと不平を言います。次のようなチェックを実行しています。
if (!file_exists($file) || !is_file($file) || !is_readable($file))
ファイルが追加されないのはなぜですか? 間違ったフォルダを参照していますか? コードを含むファイルは /web/projectname/ にあります。インターネット上の誰かが、php が一時ファイルを直接削除することについて不明確なことを言いました。これは、応答が実行された後ですか? 何らかの方法でこれに対処する必要がありますか?
問題を生成する最も単純なコード:
foreach ($_FILES as $file) {
$filepath = $file['tmp_name'].'/'.$file['name'];
if(file_exists($filepath)){
echo 'true <br />';
}else{
echo 'false <br />';
}
}
ファイルがアップロードされていても、この echo:es は false です。
$filepath には、上記のパスが含まれています。