php上传文件至数据库 (如何将文件上传到PHP数据库?)
PHP是一种流行的Web开发语言,它提供了许多功能来处理文件上传任务。本文将介绍如何通过PHP执行文件上传到数据库的操作。
- 准备工作
在开始上传之前,我们需要做一些准备工作。首先,我们需要创建一个数据库来存储文件,然后创建一个名为files
的表来存储文件的相关信息。该表应具有以下列:
id
:文件IDname
:文件名type
:文件类型size
:文件大小data
:文件二进制数据
我们还需要在PHP中创建一个文件上传表单,允许用户选择要上传的文件。
- 处理上传请求
一旦用户选择了要上传的文件并提交了表单,我们需要在PHP中处理上传请求。PHP提供了一些超全局变量来访问上传文件的信息。其中,$_FILES['file']['name']
表示文件名,$_FILES['file']['type']
表示文件类型,$_FILES['file']['size']
表示文件大小,$_FILES['file']['tmp_name']
表示上传后的临时文件名称。
首先,我们需要检查是否选择了要上传的文件,以及文件的大小是否超过了服务器限制。如果文件大小过大,则会提示用户选择一个较小的文件。
接下来,我们需要将文件读入内存并将其转换为二进制数据。然后,我们需要使用MySQLi扩展库将文件和相关信息写入数据库。最后,我们需要关闭文件和数据库连接,并显示上传成功的消息。
下面是上传代码的示例:
“`
//检查是否选择了要上传的文件
if(isset($FILES[‘file’]) && $FILES[‘file’][‘error’]==0){
$fileName = $FILES[‘file’][‘name’];
$fileSize = $FILES[‘file’][‘size’];
$fileType = $FILES[‘file’][‘type’];
$fileTmp = $FILES[‘file’][‘tmp_name’];
//检查文件大小是否超过了服务器限制
if($fileSize > 10000000){
echo "文件过大,请选择一个小于10MB的文件。";
exit();
}
//将文件读入内存并将其转换为二进制数据
$fp = fopen($fileTmp, 'r');
$content = fread($fp, filesize($fileTmp));
fclose($fp);
$content = addslashes($content);
//将文件和相关信息写入数据库
$query = "INSERT INTO files (name, size, type, data) VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
$result = mysqli_query($conn, $query);
//关闭文件和数据库连接
mysqli_close($conn);
echo "文件已上传。";
}
else{
echo “发生错误,文件上传失败。”;
}
“`
通过以上步骤,我们就可以在PHP中实现文件上传并存储到数据库的功能了。