MySQL实现文件上传和图片处理(mysql上传图片个文件)
MySQL实现文件上传和图片处理
随着互联网的发展,文件上传和图片处理已经成为很多网站必备的功能。常见的做法是将文件和图片保存在服务器上,然后在网页中引用它们。然而,如何高效地管理这些文件和图片,使得它们能够快速被访问和升级,是一个很重要的问题。本文将介绍如何使用MySQL实现文件上传和图片处理。
一、文件上传
文件上传指将本地文件上传到服务器,存储在服务器的硬盘中。实现文件上传的步骤如下:
1. 连接到MySQL数据库,创建一个名为”file_upload”的数据库。
2. 在数据库中创建一张名为”file”的表,用于保存上传的文件。表的结构如下:
CREATE TABLE `file` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`filename` varchar(50) DEFAULT NULL,
`filesize` int(11) DEFAULT NULL,
`filetype` varchar(50) DEFAULT NULL,
`filepath` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,id为文件ID,自增;filename为文件名;filesize为文件大小;filetype为文件类型;filepath为文件在服务器上的路径。
3. 编写文件上传的PHP代码,将上传的文件保存到服务器上,并将相关信息插入到”file”表中。代码如下:
if($_FILES[“file”][“error”]>0){
echo “Error: “.$_FILES[“file”][“error”].”
“;
}else{
$filename=$_FILES[“file”][“name”];
$filesize=$_FILES[“file”][“size”];
$filetype=$_FILES[“file”][“type”];
$filepath=”upload/”.$filename;
move_uploaded_file($_FILES[“file”][“tmp_name”],$filepath);
mysql_query(“INSERT INTO `file` (`filename`, `filesize`, `filetype`, `filepath`) VALUES (‘$filename’, ‘$filesize’, ‘$filetype’, ‘$filepath’)”);
echo “File uploaded successfully!”;
}
?>
二、图片处理
图片处理包括上传图片、裁剪图片、缩放图片等操作。通过MySQL数据库,可以轻松管理这些图片。实现图片处理的步骤如下:
1. 连接到MySQL数据库,创建一个名为”image_upload”的数据库。
2. 在数据库中创建一张名为”image”的表,用于保存上传的图片。表的结构如下:
CREATE TABLE `image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`filename` varchar(50) DEFAULT NULL,
`filesize` int(11) DEFAULT NULL,
`filetype` varchar(50) DEFAULT NULL,
`filepath` varchar(200) DEFAULT NULL,
`thumbnl` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,id为图片ID,自增;filename为图片名;filesize为图片大小;filetype为图片类型;filepath为原图在服务器上的路径;thumbnl为裁剪后的缩略图在服务器上的路径。
3. 编写图片上传和裁剪的PHP代码,将上传的图片保存到服务器上,并生成缩略图,将相关信息插入到”image”表中。代码如下:
if($_FILES[“file”][“error”]>0){
echo “Error: “.$_FILES[“file”][“error”].”
“;
}else{
$filename=$_FILES[“file”][“name”];
$filesize=$_FILES[“file”][“size”];
$filetype=$_FILES[“file”][“type”];
$filepath=”upload/”.$filename;
$thumbnlpath=”thumbnl/”.$filename;
move_uploaded_file($_FILES[“file”][“tmp_name”],$filepath);
$image = imagecreatefromjpeg($filepath);
$w = imagesx($image);
$h = imagesy($image);
$thumbnl = imagecreatetruecolor(100, 100);
imagecopyresized($thumbnl, $image, 0, 0, 0, 0, 100, 100, $w, $h);
imagejpeg($thumbnl, $thumbnlpath);
mysql_query(“INSERT INTO `image` (`filename`, `filesize`, `filetype`, `filepath`, `thumbnl`) VALUES (‘$filename’, ‘$filesize’, ‘$filetype’, ‘$filepath’, ‘$thumbnlpath’)”);
echo “File uploaded successfully!”;
}
?>
4. 编写图片访问的PHP代码,将图片在网页中显示出来。代码如下:
$result=mysql_query(“SELECT * FROM `image` WHERE `id`=’$id'”);
$row=mysql_fetch_array($result);
header(‘Content-Type:’.$row[‘filetype’]);
echo file_get_contents($row[‘filepath’]);
?>
实现以上步骤后,就可以快速高效地管理文件和图片了。通过建立MySQL数据库,可以轻松地进行文件上传和图片处理。同时,通过编写相关的PHP代码,也可以在网页中访问这些文件和图片,实现更好的用户体验。