将用户选择的附件放入mysql数据库



我目前有一个表格,客户服务代表可以在其中插入呼叫日志。我想有一些东西,允许用户选择一个文件,在表单提交后将上传到我的数据库。有人能提供一个例子或资源来引导我走向正确的方向吗?

使用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"> 

相关内容

  • 没有找到相关文章

最新更新