php - 将上传图像的文件路径保存到 MySQL 数据库

标签 php mysql

我为此浏览了无数不同的帮助菜单和主题,但仍然遇到问题。我只想将上传图像的文件路径插入 MySQL 数据库。我曾尝试将图像传递给变量,然后使用查询将其推送到数据库,但它不起作用。我的代码在下面,表单在上面,php 在下面:

<html>

<body>

<h1>test</h1>

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

Name <input type="text" name="name" /><br><br>

Description <input type="text" name="desc" /><br><br>

Price Low<input type="text" name="price_low" /><br><br>

Price High <input type="text" name="price_high" /><br><br>

<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
3.Send this file: <input name="userfile" type="file" />
4.<input type="submit" value="Send File" /

<input type="submit" />

</form>
a

</body>
</html>




<html>

<?php
 //upload image
$uploaddir = '';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
//end of upload image


if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}



$con = mysql_connect("localhost","admintest","gen");

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }



mysql_select_db("test2", $con);



$sql="INSERT INTO products (name, description, price_low, price_high)

VALUES

('$_POST[name]','$_POST[desc]','$_POST[price_low]','$_POST[price_high]')";



if (!mysql_query($sql,$con))

  {

  die('Error: ' . mysql_error());

  }

echo "1 record added";



mysql_close($con)

?>



</body>

最佳答案

Security issuesdeprecated extension除此之外,您需要做的就是将文件名插入数据库。为此,向您的数据库添加一个“文件名”字段,然后相应地调整您的插入查询:

INSERT INTO products (name, description, price_low, price_high, filename)
              VALUES (:name, :desc, :price_low, :price_high, :filename)

此外,您的 $uploaddir 变量是空的,这些文件目前可能甚至没有保存在任何地方。要正确移动您的文件,请尝试这样的操作:

$uploaddir = '/path/where/you/can/save/';
$rawFilename = $_FILES['userfile']['name'];
$extension = pathinfo($rawFilename, PATHINFO_EXTENSION);

$uploadfile = $uploaddir . md5($rawFilename) . '.' . $extension;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Upload failed";
}

此脚本假设您信任上传的内容,而 md5 函数只是一种快速简便的方法来“清理”(如果我可以这样称呼的话)文件名。

关于php - 将上传图像的文件路径保存到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661411/

相关文章:

PHP 没有在 session_start() 上创建 $_SESSION 变量;

php - MySql/PHP 查询返回空

php - 在 mysql 中为用户获取每场比赛的前 3 名结果

mysql - 我如何在这个方案上在 mysql 中进行连接查询

php - 在php中执行shell文件的内容

php - COM 对象方法未定义

java - 一对一关系选择查询仅第一次获取一次数据

php - 显示已登录的用户详细信息

mysql - 如何从mysql字段名中删除特殊字符

php - 如何用php连接到远程mysql数据库?