我目前正在创建一个网站,您也可以放置带有图片的博客文章,我已经有上传文件的代码,但我也想把它放在我的 MYSQL 行中。
这是我post_picture.php:
<form action="" method="POST" enctype="multipart/form-data">
<label for="file">Profile Pic:</label> <input type="file" name="ProfilePic" id="ProfilePic" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
$con = mysql_connect("localhost", "a1070rik", "");
mysql_select_db("portals",$con);
if(isset($_POST[submit])){
$ProfilePicName = $_FILES["ProfilePic"]["name"];
$ProfilePicType = $_FILES["ProfilePic"]["type"];
$ProfilePicSize = $_FILES["ProfilePic"]["size"];
$ProfilePicTemp = $_FILES["ProfilePic"]["tmp_name"];
$ProfilePicError = $_FILES["ProfilePic"]["error"];
$RandomAccountNumber = uniqid();
move_uploaded_file($ProfilePicTemp, "Content/" . $RandomAccountNumber . ".png");
}
?>
这是我的MYSQL表结构的图片:图片而且我还想在一行中有多个图像网址,这可能吗?
谢谢。
编辑:
用于查询的额外信息:我的数据库名称是"Portalen",行名称是"Leerlingen"。
首先,查看您的phpMySql屏幕截图,我建议您查看字段长度文档。您真的不需要 varchar(1000) 来保存电子邮件地址,也不需要 varchar(9999) 来存储文件名。
对于您想要做的事情,您只需要对MySQL进行查询,您将在其中添加$RandomAccountNumber。".png"到img_url字段。
警告:您的脚本假定该文件是 PNG。我建议您查看documentantion或一些示例,如何确定文件mime类型,以便为保存的文件添加正确的扩展名。这里有一个很好的例子:http://php.net/manual/en/features.file-upload.php
我自己找到了答案,这可能不是最安全的方法,但它现在有效。对于任何想要它的人来说,这里是代码:
<?php
if(isset($_POST[upload])){
$fileExistsFlag = 0;
$fileName = uniqid() . $_FILES['Filename']['name'];
$link = mysqli_connect("localhost","a1070rik","","photos") or die("Error ".mysqli_error($link));
/*
* If file is not present in the destination folder
*/
if($fileExistsFlag == 0) {
$target = "files/";
$fileTarget = $target.$fileName;
$tempFileName = $_FILES["Filename"]["tmp_name"];
$fileDescription = $_POST['Description'];
$result = move_uploaded_file($tempFileName,$fileTarget);
/*
* If file was successfully uploaded in the destination folder
*/
if($result) {
echo "Your file <html><b><i>".$fileName."</i></b></html> has been successfully uploaded";
$query = "INSERT INTO images(filepath,filename,description) VALUES ('$fileTarget','$fileName','$fileDescription')";
$link->query($query) or die("Error : ".mysqli_error($link));
}
else {
echo "Sorry !!! There was an error in uploading your file";
}
mysqli_close($link);
}
/*
* If file is already present in the destination folder
*/
else {
echo "File <html><b><i>".$fileName."</i></b></html> already exists in your folder. Please rename the file and try again.";
mysqli_close($link);
}};
?>
<form method="post" action="" enctype="multipart/form-data">
<p>File :</p>
<input type="file" name="Filename">
<p>Description</p>
<textarea rows="10" cols="35" name="Description"></textarea>
<br/>
<input TYPE="submit" name="upload" value="Submit"/>
</form>
然后是创建与我相同的sql表的代码:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Databank: `photos`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `images`
--
CREATE TABLE IF NOT EXISTS `images` (
`filepath` varchar(999) NOT NULL,
`filename` varchar(1000) NOT NULL,
`description` varchar(999) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
只需将该代码放入.sql文件中并导入即可。
谢谢大家。