0

現在、フィールドが欠落している場合やフィールドが間違って入力されている場合にユーザーをフォーム自体に戻すフォームを作成しています。入力の1つは画像ファイルです。画像の位置をもう一度エコーアウトしたいのですが、使用します$_FILES[tmp_name]か?

たとえばvalue="$_FILES[tmp_name]"、ユーザーが画像を再度選択する必要がないように、場所をエコーバックします。

4

4 に答える 4

0

いいえ、この方法で使用することはできません。$_FILES['tmp_name']これは、ユーザーのコンピューターで使用されている名前ではなく、サーバーのtmpフォルダーにある一時的な名前であるためです。これを行う方法があるかどうかわからない。調べて、何か見つけたらお知らせしますが、あるとは思えません。

AJAXファイルのアップロードを使用した場合でも、これについて心配する必要はありません。

于 2012-07-18T15:23:39.340 に答える
0

この方法では不可能です。これ$_FILES[tmp_name]は、サーバーにすでにアップロードされている画像のフルパスを反映しています。ブラウザでアップロードフィールドを事前に選択することはできません。また、アップロードされたファイルの完全なクライアント側パスを取得することもできません。

そのため、エラーが発生した場合は、この一時ファイルを別の場所にコピーして、アップロードフィールドを再度ユーザーに提供する代わりに、アップロード済みの画像をユーザーに表示できます。ただし、ユーザーが無効なフィールドを修正しようとしなかった場合は、このコピーされた画像を必ず削除する必要があります。

または、画像のアップロード部分からフィールドの検証を分離します。いくつかのajax魔法または別の形式を使用します。

于 2012-07-18T15:24:05.873 に答える
0

これは不可能です。ファイル入力でvalue属性を使用して、効果がないことを確認することができます。

これを行うことができれば、深刻なセキュリティ問題になると想像してください(つまり、重要なファイルの共通パスを使用して事前に入力された値でファイル入力を非表示にし、他の詳細と同時に取得する)

于 2012-07-18T15:24:32.737 に答える
0

フォームが通常のhtmlフォーム送信を介して送信される場合、ユーザーのファイルパスにアクセスすることはできません。最善の策は、AJAXフォーム送信を使用することです。

于 2012-07-18T15:24:49.200 に答える