将图像上传到 MySQL 数据库时出现问题,它不会输入但将图像上传到服务器

劳拉·克罗夫特

所以我已经为此工作了一段时间,但我不知道如何将其插入到数据库中。图像上传并存储在服务器 imgs 目录中,但在数据库中找不到任何痕迹。根本没有错误。我很清楚 SQL 注入的弱点,但这是针对一个原型的私人项目,所以我现在只针对功能。为什么这不起作用?我觉得它可能会跳过 sql 查询,但我不明白为什么。

    <?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
    $conn = new PDO ("mysql:host=localhost;dbname=project", "root", "0612733771Aa");

try {
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
   if(!isset($_FILES['upload']) || $_FILES['upload']['error'] == UPLOAD_ERR_NO_FILE) {
    echo "Error no file selected"; 
}
else {
    $filename = $_FILES['upload']['name']; //yes
    $filetype = $_FILES['upload']["type"]; //yes
    $title = $_POST['title'];
    $description = $_POST['description'];
    $category = $_POST['category'];
    $dir = "imgs/";
    $filetarget = $dir . basename($_FILES['upload']['name']);
    $allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png");
    $ext = pathinfo($filetarget, PATHINFO_EXTENSION);  
    if(!array_key_exists($ext, $allowed)) {
        echo "Please select a valid file.";
        exit;
    }

    $conn->query = ("INSERT INTO images (title, image, description, category) VALUES ('$title', '$filename', '$description', '$category')");  

    if (move_uploaded_file($_FILES['upload']['tmp_name'], $filetarget)) {
    echo "The file ". basename( $_FILES['upload']['name']). " has been uploaded.";

    }
else {
    print "File was not uploaded.";
    exit;
}  
}
?>

提前致谢

劳拉·克罗夫特

由于@Fred-ii 的帮助,我找到了解决方案-问题是我没有使用准备好的语句,更新的代码我不得不将我的整个代码切换到一个准备好的语句,并使用 PDO::PARAM_LOB 以便将一个大 blob 提交到数据库中。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$fp = fopen($_FILES['upload']['tmp_name'], 'rb');
$filetype = $_FILES['upload']["type"]; //yes
$title = $_POST['title'];
$description = $_POST['description'];
$category = $_POST['category'];
$dir = "imgs/";
$filetarget = $dir . basename($_FILES['upload']['name']);
$allowed = array("jpg" => "image/jpg", "jpeg" => "image/jpeg", "gif" => "image/gif", "png" => "image/png");
$ext = pathinfo($filetarget, PATHINFO_EXTENSION);  
$conn = new PDO ("mysql:host=localhost;dbname=project", "root", "0612733771Aa");
$stmt = $conn->prepare("INSERT INTO images (title, image, description, category) VALUES ('$title', '$fp', '$description', '$category')");
try {
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    }
if(!isset($_FILES['upload']) || $_FILES['upload']['error'] == UPLOAD_ERR_NO_FILE) {
    echo "Error no file selected"; 
    }
else {
    if(!array_key_exists($ext, $allowed)) {
    echo "Please select a valid file.";
    exit;
    }
$stmt->bindParam(1, $title);
$stmt->bindParam(2, $fp, PDO::PARAM_LOB);
$stmt->bindParam(3, $description);
$stmt->bindParam(4, $category);
$conn->beginTransaction();
$stmt->execute();
$conn->commit();
if (move_uploaded_file($_FILES['upload']['tmp_name'], $filetarget)) {
echo "The file ". basename( $_FILES['upload']['name']). " has been uploaded.";
}
else {
    print "File was not uploaded.";
    exit;
    }  
}
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将图像上传到服务器并将图像路径存储在mysql数据库中

来自分类Dev

将图像上传到服务器并存储在MySQL数据库中

来自分类Dev

使用Android和PHP将图像上传到服务器(MySQL数据库)

来自分类Dev

将多个图像上传到Apache服务器上的mysql数据库

来自分类Dev

将图像上传到文件并将信息上传到mysql数据库

来自分类Dev

如何使用php和android将多个图像上传到服务器(mysql数据库)

来自分类Dev

我如何使用react native expo image将图像上传到本地服务器PHP /数据库MySQL

来自分类Dev

将Blob文件/图像上传到Mysql

来自分类Dev

使用PHP将图像上传到MySQL

来自分类Dev

CakePHP:直接将图像上传到MySQL

来自分类Dev

将Blob文件/图像上传到Mysql

来自分类Dev

无法将图像上传到 mysql longblob

来自分类Dev

MySQL-将图像上传到BLOB最大上传大小?

来自分类Dev

将图像从提交表单上传到mysql数据库并在div中显示图像?

来自分类Dev

将图像从提交表单上传到mysql数据库并在div中显示图像?

来自分类Dev

如何使用PHP代码将图像上传到MySQL数据库

来自分类Dev

如何使用PHP代码将图像上传到MySQL数据库

来自分类Dev

如何使用C#将图像上传到mysql数据库?

来自分类Dev

使用PHP表单将图像上传到mysql

来自分类Dev

无法使用PHP将图像上传到MySQL

来自分类Dev

如何将抖动图像上传到MySQL

来自分类Dev

使用jsp,servlet将图像上传到mysql

来自分类Dev

将图像上传到服务器

来自分类Dev

图像未上传到 Laravel 中的 MySQL 数据库

来自分类Dev

如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

来自分类Dev

如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

来自分类Dev

将图像上传到数据库,但出现异常

来自分类Dev

将图像上传到服务器时重命名

来自分类Dev

将图像上传到Firebase

Related 相关文章

  1. 1

    将图像上传到服务器并将图像路径存储在mysql数据库中

  2. 2

    将图像上传到服务器并存储在MySQL数据库中

  3. 3

    使用Android和PHP将图像上传到服务器(MySQL数据库)

  4. 4

    将多个图像上传到Apache服务器上的mysql数据库

  5. 5

    将图像上传到文件并将信息上传到mysql数据库

  6. 6

    如何使用php和android将多个图像上传到服务器(mysql数据库)

  7. 7

    我如何使用react native expo image将图像上传到本地服务器PHP /数据库MySQL

  8. 8

    将Blob文件/图像上传到Mysql

  9. 9

    使用PHP将图像上传到MySQL

  10. 10

    CakePHP:直接将图像上传到MySQL

  11. 11

    将Blob文件/图像上传到Mysql

  12. 12

    无法将图像上传到 mysql longblob

  13. 13

    MySQL-将图像上传到BLOB最大上传大小?

  14. 14

    将图像从提交表单上传到mysql数据库并在div中显示图像?

  15. 15

    将图像从提交表单上传到mysql数据库并在div中显示图像?

  16. 16

    如何使用PHP代码将图像上传到MySQL数据库

  17. 17

    如何使用PHP代码将图像上传到MySQL数据库

  18. 18

    如何使用C#将图像上传到mysql数据库?

  19. 19

    使用PHP表单将图像上传到mysql

  20. 20

    无法使用PHP将图像上传到MySQL

  21. 21

    如何将抖动图像上传到MySQL

  22. 22

    使用jsp,servlet将图像上传到mysql

  23. 23

    将图像上传到服务器

  24. 24

    图像未上传到 Laravel 中的 MySQL 数据库

  25. 25

    如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

  26. 26

    如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

  27. 27

    将图像上传到数据库,但出现异常

  28. 28

    将图像上传到服务器时重命名

  29. 29

    将图像上传到Firebase

热门标签

归档