将帖子图片网址上传到mysql数据库,并将多个网址放在一行中


Upload post image url into mysql database, and put multiple urls in one row

我目前正在创建一个网站,您也可以放置带有图片的博客文章,我已经有上传文件的代码,但我也想把它放在我的 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文件中并导入即可。

谢谢大家。