ファイルフィールドを持つフォームがあります。ファイルを選択した後、選択したファイルをデータベースの列に挿入したい。どうすればいいのですか?
2 に答える
これに関してはデータベースが制限されているため、ファイルコンテンツにデータベースを使用することはお勧めしません。確かにtext
コンテンツを入れることができるフィールドはありますが、それらもある程度制限されています。いずれにせよ、text
フィールド タイプは将来廃止される予定です。あなたが本当にそれを持っている必要がない限り、私はそれを避けようとする習慣になります. 、 、を使用してfopen
、必要に応じて簡単にコンテンツを開くことができます。または、データベースに保存する代わりに、.fgets
fclose
fread
file_get_contents
file_put_contents
ただし、データベースに保存されているファイル名を参照している可能性があることに気付いた場合は、それがうまく機能し、varchar(255) を使用しても問題ありません。
この場合、フォーム セットに method="post" と action="whatever.php" が設定されていることを確認してください。そしてENCTYPE = "multipart/form-data"
。通常の送信ボタンよりもアクションがトリガーされ、そこから直接処理できます。サーバー上のパス内に保存するために使用できmove_uploaded_file
ます。または、テキスト ファイルであり、編集する必要がある場合は、上記の方法のいずれかを実行する必要があります。それ以外の場合、フォームからファイルを取得するには、$_FILES
定義済みの PHP 配列を使用します。$_FILES['file_input_name']['tmp_name']
との$FILES['file_input_name']['name']
値を取得する必要があります。ここで、 file_input_name
= フォーム内のファイル入力のタグの名前属性です。
わずか 4 ステップ:
- フォームを正しく設定する必要があります。フォーム タグに ENCTYPE = "multipart/form-data" を追加します。
- あなたのphpページでは、ファイルの内容を読む必要があります
- mysql_real_escape_string()を使用してバイナリ データをエスケープします。
- 標準クエリを使用して、ファイルの内容を行に入れます。