我目前有一个表格,客户服务代表可以在其中插入呼叫日志。我想有一些东西,允许用户选择一个文件,在表单提交后将上传到我的数据库。有人能提供一个例子或资源来引导我走向正确的方向吗?
使用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";
}
记住位置
然后将文件位置放在数据库表中(例如使用mysqli
(文档),因为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文档。
您可以检查以下html表单输入
<input type="file">