我无法理解将图像文件路径存储到 MySQL 数据库中。但它正在存储图像详细信息以及将图像文件移动到目录中。我尝试了很多方法,但没有运气。我是 PHP 新手。
问题: 如何正确捕获图像的路径并将其存储到 MySQL 中?
参考链接: http ://www.php-mysql-tutorial.com/wikis/php-tutorial/uploading-files-to-the-server-using-php.aspx
另外:请整体建议任何更好的编码实践以供考虑。非常感激!
//MYSQL TABLE
CREATE TABLE `userimages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL DEFAULT '',
`type` varchar(30) NOT NULL DEFAULT '',
`size` int(11) NOT NULL,
`ipath` varchar(250) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
这是我的错误信息。
注意:未定义变量:第 45 行 /useradmin-processor.php 中的路径
注意:未定义的索引:第 55 行 /useradmin-processor.php 中的 ipath
注意:未定义变量:第 59 行 /useradmin-processor.php 中的路径
// IMAGE UPLOAD FILE
if(isset($_POST['imagesupload'])) {
/*
Note: The below code will upload the image to the images folder.
Then store the image name in your database. When you want to show the
image, just append the image name(taken from database) to the image path
and paste it in the <img>
*/
$imageFileName = $_FILES["imageFileName"]["name"];
$tmpImageFileName = $_FILES["imageFileName"]["tmp_name"];
$imageSize = $_FILES["imageFileName"]["size"];
$imageType = $_FILES["imageFileName"]["type"];
move_uploaded_file($tmpImageFileName,"images/".$imageFileName);
/*
Note: You can make sure that the images are not overritten by checking
if there is a different image with the same file name, by using the
below code prevents overwriting of images due to same Image names.
You have to store the new Image name in the database.
*/
$newImageFileName = $imageFileName;
loop1:
if(!file_exists("images/".$newImageFileName)){
move_uploaded_file($tmpImageFileName, $path.$newImageFileName);
} else {
$newImageFileName .= "_1";
goto loop1;
}
/*
Note: store the image details into the database and make the connection.
*/
$params = array(
':$path'=>$_POST['ipath']
);
$sql = "INSERT INTO userimages ( name, size, type, ipath ) ".
"VALUES ( '$imageFileName', '$imageSize', '$imageType', '$path' )";
// the connection to db
executeSQL($sql, $params);
}