Php 将文件路径保存到数据库/SQL

Php 将文件路径保存到数据库/SQL,php,mysql,sql,Php,Mysql,Sql,简介:我正在创建一个“社交网络”网站。这与其说是一次商业冒险,不如说是一次学习。 我已经创建了简单版本的登录和注册,没有加密,他们使用PHPMyadmin和work 我创建了一个表单来上传一张图片,以便以后显示。图片保存到服务器,然后我需要存储到数据库的路径。。。但这就是问题所在 每页包括会话开始 表格: 上传_ppl.php: <?php session_start(); $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp

简介:我正在创建一个“社交网络”网站。这与其说是一次商业冒险,不如说是一次学习。 我已经创建了简单版本的登录和注册,没有加密,他们使用PHPMyadmin和work

我创建了一个表单来上传一张图片,以便以后显示。图片保存到服务器,然后我需要存储到数据库的路径。。。但这就是问题所在

每页包括会话开始

表格:

上传_ppl.php:

<?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';}
  }