通过表单发送内容的图片上传

时间:2010-01-13 00:28:27

标签: php mysql image forms upload

BA $ LIK:     

    

现场比萨:

    

现场uzun:

    

类别:     ”。$吉[ISIM] “”;     }?>          tiklanma:       

    tarih:“name =”tarih“/>         içerik:                                      

和post.php值:

mysql_query("INSERT INTO yazilar (baslik, spot, spot_kisa, icerik, kategori, tiklanma, eklemetarihi)
VALUES
('$_POST[baslik]','$_POST[spot]','$_POST[spot_kisa]','$_POST[icerik]','$_POST[kategori]','$_POST[tiklanma]','$_POST[tarih]')");

我需要在上传表单的表格中添加2个图片链接,并使用post.php插入db。两个不同大小的缩略图。

谢谢!

1 个答案:

答案 0 :(得分:0)

有多种有效的方法可以解决您的问题。 我要展示我能想到的最简单的一个。

您的表单必须进行以下修改:

  • 将ENCTYPE属性添加到表单标记:

    <form action="post.php" method="post" enctype="multipart/form-data">

  • 插入文件上传框(您可以使用控件数组,如image[],但我会保持简单):

    Image 1: <input type="file" name="image1" /> {
    {1}}

请注意,通过POST表单发送文件意味着上传大小不能超过2,048 Kb(2兆字节)。

准备好接收文件的目录,它应该具有适当的权限设置,以便用户可以在您的服务器中编写(如果它是Linux服务器,您可以使用chmod 777)。在此示例中,我的文件夹将被称为“用户图像”。

然后,在 post.php 中添加以下内容:

Image 2: <input type="file" name="image2" />

关于调整图像大小以生成缩略图,您可以使用GD库调整大小并存储文件您可以使用GD库(也可以使用GD库,但不要在您的文件中加载JPEG文件HTML显示的IMG标记,您将加载这样的PHP文件:)

$upload_to = "./user-images/"; move_uploaded_file( $_FILES["image1"]["tmp_name"], $upload_to . "/" . $_FILES["image1"]["name"] ); move_uploaded_file( $_FILES["image2"]["tmp_name"], $upload_to . "/" . $_FILES["image2"]["name"] ); ?>

可轻松生成图像文件的链接:

<img src="thumbnail.php?src=image1.jpg&w=90&h=50" />

如果您需要绝对网址,只需在$link = $upload_to . "/" . $_FILES["image1"]["name"]之前添加您的域名地址。

这只是一种做法。您还可以将图像的二进制内容添加到数据库中(因为我们讨论的是缩略图,我们不应该有问题,默认情况下,MySQL查询的长度限制为1 Mb)。这可以使用数据库表中的BLOB字段和$upload_to(使用PHP 5)或file_get_contents()以二进制模式/ fopen() / fread()(使用PHP 4)来读取文件并将它们转储到数据库中。始终建议对文件进行编码,以使SQL查询不被破坏(通常可以使用fclose()base64_encode()执行此操作。)

希望这可以帮到你。祝你好运!