現在、カスタマー サービス担当者が通話ログを挿入できるフォームがあります。フォームの送信時にデータベースにアップロードされるファイルをユーザーが選択できるようにしたいと考えています。誰かが私を正しい方向に導くかもしれない例やリソースを提供できますか?
質問する
1189 次
2 に答える
0
POST を使用したファイルのアップロード
ファイルをサーバーに保存し、実際にはデータベースに配置しないことを想定しています (大量のファイルを BLOB としてデータベースに挿入すると、パフォーマンスが大幅に低下します)。
フロントエンド
つまり、フォームにアップロード フィールドを作成します。
<form enctype="multipart/form-data" action="__URL__" method="POST">
Send this file: <input name="call-log" type="file" />
<input type="submit" value="Upload Log" />
</form>
ファイルの保存
次に、アップロードを処理します。
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['call-log']['name']);
if (move_uploaded_file($_FILES['call-log']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
場所を思い出す
次に、データベース テーブルにファイルの場所を入力します (( documentation ) を使用する例は、( documentationmysqli
)がオタクの怒りを引き付けるためです) 。mysql
$filename = basename($_FILES['call-log']['name']);
$mysqli = new mysqli('localhost','some_user','some_password','database');
$stmt = $mysqli->prepare("INSERT INTO logs (file-location) VALUES (?)");
$stmt->bind_param("s", $filename);
$stmt->execute;
PHP ドキュメントからアドホックされた例。
于 2013-08-07T14:04:13.677 に答える
-1
次のhtmlフォーム入力を確認できます
<input type="file">
于 2013-08-07T14:02:41.053 に答える