图片上传&将链接存储在数据库中

时间:2010-12-26 16:55:27

标签: php file-upload

我正在使用此表单将图片的标题,链接和文章文本添加到数据库中。 我正在使用type =“text”作为图片链接,现在,在外部图片上传服务上上传图片并复制链接时,我会感到很自负。

我想上传图像,并将图像的LINK存储在数据库中。

表格:

<?php if (!$_POST["go"]){ ?>
<form method="post" action="">
    <input name="article_title" type="text">
    <input name="article_image_url" type="text"> <!-- i want here type="file" -->
    <textarea name="article_text"></textarea>
    <input type="submit" name="go" value="Submit">
</form>


<?php
} else {
   $date=date("Y.m.d");
   $title = $_POST["article_title"];
   $image_url = $_POST["article_image_url"];
   $text = $_POST["text"];


$sql="INSERT INTO articles (title,image_url,text,date) VALUES ('$title', '$image_url', '$text', '$date')";

if (mysql_query($sql)){

echo "done";}

else {echo "error<br>" . mysql_error();}}

?>

请帮助我:)

ps:对不起我的英语:$

1 个答案:

答案 0 :(得分:1)

你应该做的第一件事,似乎你对SQL escaping一无所知,在你访问第一个$_POST var之前添加以下内容:

$_POST = array_map("mysql_real_escape_string", $_POST);

然后你似乎想要为图像使用文件上传。如果是这样,请将url字段更改为:

<input type=file name=image>

此上传的文件将显示在$_FILES中。在你阅读$ _POST中的其他字段之后,最好像这样使用它,

if ($img = $_FILES["image"]["tmp_name"]) {
     $image_url = md5_file($img) . ".jpeg";
     move_uploaded_file($img, "./upload/$image_url");
     $image_url = "http://www.example.org/where/$image_url";
}

有很多安全问题。但这不在范围内,所以我将它硬连线到.jpeg。手册及其评论中有很多信息:http://de2.php.net/manual/en/features.file-upload.php