gpt4 book ai didi

php - 将图像上传到数据库和文件夹中

转载 作者:行者123 更新时间:2023-11-30 01:21:29 25 4
gpt4 key购买 nike

我遇到这个问题,我创建了一个代码,用于将文本和图像上传到数据库和文件夹中。几天前,我想知道如何创建一个唯一的 id 并插入。我已经找到了一种方法,但是代码不会将图像上传到数据库中,而只是上传到文件夹中。

<?php
if (isset($_FILES['files'])) {
$errors = array();
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
$file_name = $key . $_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['type'][$key];
if ($file_size > 2097152) {
$errors[] = 'File size must be less than 2 MB';
}
$query = "
INSERT INTO image_area2
('id',`name`,`path`,`unique_id`)
VALUES
('','$file_name','uploads/$file_name','$_POST[un_id]');
";

代码似乎可以将图像插入数据库,但它不起作用,我无法弄清楚。感谢您提前提供的帮助。

到目前为止我的回答是为了让你看得更清楚:

  • 问题是我没有任何错误,这是最奇怪的事情。它工作得很好,它将文本插入数据库,将图像插入文件夹,但不会将路径和名称插入数据库。我认为插入的代码没问题,但我不明白为什么它不这样做。我使用 print_r($query) 函数来查看代码是否正在从表单接收信息,并且它正在接收它。

  • 我已经添加了 mysql_query($query);行,又什么都没有,它将文本添加到数据库中,将图像添加到文件夹中,但没有将图像添加到数据库中。 $_FILES['files']['tmp_name'] 我用它来定义和获取名称、tmp 名称大小和类型,并将它们放入数组 $file_name、$file_size、$file_type 和 $file_tmp

  • 好吧,我已经清除了它发布的一次 ID,但奇怪的是我添加了 1 张图像,并且在数据库中,同一张图像有 2 行,然后如果我想添加新文本新图像再次不起作用,仅将 1 个或多个图像添加到文件夹中。

已解决:这个问题通过两个步骤解决了,第一个步骤是我这样写“id”,但无论如何都不需要它,第二个步骤是 WAMP 服务器出现问题,它被删除和更改。感谢您的帮助:)

最佳答案

如果您的代码是从实际文件复制/粘贴的,则您的 SQL 在字段列表中使用了不正确的引号。应该是:

    $query = "
INSERT INTO image_area2
(`id`,`name`,`path`,`unique_id`)
VALUES
('','$file_name','uploads/$file_name','$_POST[un_id]');
";

(请注意 id 周围的反引号,而不是普通的单引号

如果id是自增主键,则将SQL更改为:

    $query = "
INSERT INTO image_area2
(`name`,`path`,`unique_id`)
VALUES
('$file_name','uploads/$file_name','$_POST[un_id]');
";

另外,还有一些提示:

  1. 清理您的变量。 $_POST['un_id'] 对 SQL 完全开放注入(inject)
  2. 远离 mysql_ 函数 - 它们是已弃用。移至 mysqli_PDO 等效项。这也将使准备好的功能可用并消除清理的需要您的数据(如果使用得当)

关于php - 将图像上传到数据库和文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18480460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com