Php 将文件路径保存到数据库/SQL
简介:我正在创建一个“社交网络”网站。这与其说是一次商业冒险,不如说是一次学习。 我已经创建了简单版本的登录和注册,没有加密,他们使用PHPMyadmin和work 我创建了一个表单来上传一张图片,以便以后显示。图片保存到服务器,然后我需要存储到数据库的路径。。。但这就是问题所在 每页包括会话开始 表格: 上传_ppl.php:Php 将文件路径保存到数据库/SQL,php,mysql,sql,Php,Mysql,Sql,简介:我正在创建一个“社交网络”网站。这与其说是一次商业冒险,不如说是一次学习。 我已经创建了简单版本的登录和注册,没有加密,他们使用PHPMyadmin和work 我创建了一个表单来上传一张图片,以便以后显示。图片保存到服务器,然后我需要存储到数据库的路径。。。但这就是问题所在 每页包括会话开始 表格: 上传_ppl.php: <?php session_start(); $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp
<?php
session_start();
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] > 2000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
$image_name= $FILES["file"]["name"];
$path=move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . rand().$_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
if(mysql_query("INSERT INTO *table* (*column*) VALUES ('$path')")){
echo "Successfull!!";} else {
echo 'fail';}
}
}
}
else
{
echo "Invalid file";
}
?>
请注意,在登录时的“connection.page”上,db连接已建立!
我是否需要通过一个会话变量来实现这一点,只是一起创建一个新的连接?
我试过很多次了。感谢所有建议。谢谢大家 像这样设置一些变量
$folder = "upload/"
$suffix = rand();
换行
$path=move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . rand().$_FILES["file"]["name"]);
到
那么你的道路就是
$fullPath = $folder . $suffix . $_FILES["file"]["name"]);
在当前代码下,您无法拉出文件路径,因为您尚未将其分配给可以获取和存储的变量。您的$path完全错误。
用这个来纠正你的错误
else
{
$image_name = rand().$_FILES["file"]["name"];
$path = "upload/" . $imagename;
move_uploaded_file($_FILES["file"]["tmp_name"],$path);
echo "Stored in: " . $path;
if(mysql_query("INSERT INTO *table* (*column*) VALUES ('$path')")){
echo "Successfull!!";} else {
echo 'fail';}
}
这与其说是一次商业冒险,不如说是一次学习他们都这么说-请不要再使用mysql_*函数,它们已被弃用。有关详细信息,请参阅。相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果你选择PDO,.@草莓如果我能胜任FB,我就不需要发布这个问题了。顺便说一句,你很容易受到。move_上传的_文件返回true/false。首先尝试这样做,然后设置$path。我是否正确地假定//$path=upload/$图像名称;应该是$image_name?
$fullPath = $folder . $suffix . $_FILES["file"]["name"]);
else
{
$image_name = rand().$_FILES["file"]["name"];
$path = "upload/" . $imagename;
move_uploaded_file($_FILES["file"]["tmp_name"],$path);
echo "Stored in: " . $path;
if(mysql_query("INSERT INTO *table* (*column*) VALUES ('$path')")){
echo "Successfull!!";} else {
echo 'fail';}
}