将用户选择的附件放入mysql DB

时间:2013-08-07 13:59:45

标签: php forms attachment

我目前有一个表格,客户服务代表可以插入通话记录。我希望有一些东西允许用户选择一个文件,表单提交后将上传到我的数据库。任何人都可以提供一个可能引导我朝着正确方向前进的例子或资源吗?

2 个答案:

答案 0 :(得分: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";
}

记住位置

然后将文件位置放在数据库表中(使用mysqlidocumentation)的示例,因为mysqldocumentation)吸引了书呆子:

$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文档的例子。

答案 1 :(得分:-1)

您可以查看以下html表单输入

<input type="file">