ユーザーが自分の Web サイトに広告を投稿できるページがあります。このページでは、問題の製品の複数の写真をアップロードできます。
私は現在2つのフォームを持っています。1 つ目は製品の詳細を処理し、2 つ目は写真をアップロードできるドロップゾーン (dropzone.js を使用) です。写真が非常に大きくなる可能性があるため、これらのフォームを分割したままにしておくことに熱心であり、ユーザーが送信を押すのを待つのではなく、すぐにアップロードしたいと考えています. これにより、全体的に時間が節約されます。
したがって、写真がドロップゾーンに配置されると、写真は tmp ディレクトリにアップロードされます (ユーザーが広告全体を投稿しない場合)。ユーザーが最初のフォームを送信したら、move_uploaded_file() を使用してファイルを永続的な場所に移動します。これは私が使用しているコードです:
for ($loop=1; $loop<=6; $loop++) {
// Retrieve filename and path
$file_path = "image_".$loop;
$tmp_path = $form_data[$file_path]; // $form_data is an array of POST data and contains the file_path of the image in the tmp dir
// Move file
$destination_path = 'images/adverts/'.$advert->id;
$success = move_uploaded_file($tmp_path, $destination_path);
}
ただし、move_uploaded_file() は機能していません。ドキュメントを調べたところ、move_uploaded_file() がファイルが HTTP POST を使用してアップロードされたかどうかを確認することがわかりました (そうでした)。確かに、アップロードしたファイルで is_uploaded_file() が TRUE を返すかどうかを確認する簡単なテストを実行しましたが、そうではありませんでした。
is_uploaded_file() は、ファイルがアップロードされたかどうかをどのように判断しますか? ファイルを移動するまでに、php はファイルがアップロードされたことを忘れているのではないかと考えていました。私のファイルがこれを通過しない他の理由はありますか?
どうもありがとう