web-dev-qa-db-ja.com

同じページで、ファイルのアップロードやその他のテキスト入力を含む<form>を解決する方法

フォームのサポートが必要です。データベースに入力したい入力、テキストエリア、ファイルアップロードが混在しています。

で何を使用しますか?通常のフォーム属性を使用しますか:

  <form action="" method="">

または

<form enctype="" action="" method="">

これは1ページで行う必要があり、画像のアップロードは他のテキスト入力と一緒に行う必要があることに注意してください。

御時間ありがとうございます。

15
user652792

ファイルのアップロードにはenctype="multipart/form-data"を使用する必要があります。これは、ファイル以外のアップロードフォームでも正常に機能します。

私は通常、ファイル入力があるかどうかに関係なく、すべてのフォームにこの宣言を使用します。

16
Matthew

<form enctype="multipart/form-data" method="post" action="submit.php">

submit.phpは、この場合、フォームを処理する外部PHPスクリプトです(PHP)を使用する場合)。 .phpスクリプトに好きな名前を付けます(egcats.php)。

アップロードされたファイル/画像データは$_FILES内に保存され、すべてのテキストフィールド、テキストエリア、ラジオボタン、チェックボックス、およびその他のデータは$_POSTスーパーグローバル内に存在します。

submit.phpが送信されたフォームを受信すると、ユーザーが正しいタイプのファイル/画像を送信したことを確認するなど、あらゆる種類の処理を実行できます。ファイル/画像のファイルパスをローカルデータベース(client /サーバーまたはファイルシステムベース)、およびはるかに。

ユーザー入力のクライアント側とサーバー側も必ず検証してください。

4
Bob

ファイル入力を含むすべてのフォームには、enctype="multipart/form-data"を設定し、method="post"を使用する必要があります。これにより、他のタイプのフィールドを含めることができます。

(これらのフィールドがサーバーに送信される方法は変わりますが、フォーム解析ライブラリは違いを自動的に処理します。生の入力を自分で解析する場合にのみ、それらについて心配する必要があります)。

4
Quentin
<form enctype="multipart/form-data" action="yourpage.php" method="post">

ファイルのアップロードを機能させるには、enctype属性が必要です。参考までに、フォームにはファイルのアップロードを含むすべてのフィールドタイプを含めることができ、問題なく機能します。

3
John Conde

クラシックASP enctype = "multipart/form-data"を使用する場合、標準のload.getFileData("textfield")ではなくRequest("textfield")としてテキストフィールドにアクセスする必要がありました。

0
user5981305