简体   繁体   中英

Saving file path to Database / SQL

INTRO: I'm creating a 'Social network' site. It's more of a learning exercise than a business venture. I have created the simple version of login and registration (without encryption) they use PHPMyadmin and work.

I've created a form to upload a picture (to later be displayed). The picture saves to the server, then i need to store the path to the db... but thats the bit where is all going wrong!!

Every page includes "session_start();"

Form:

<form action="upload_ppl.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

upload_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";
  }
?>

Please note that on the 'connection.page' upon login the db connection is established! Do I need to carry this forward with a session variable, just create a new connection all together? I've tried tons. All suggestions appreciated. Thanks guys!

I don't have a straight answer to your problem but I would like to share this link (if you have not seen it already) http://www.developphp.com/list_php_video.php#How_to_Build_a_Social_Network_Website it helped me built my own Social Site a few months ago, my site its not completed but the tutorials on the site above did get me through the Uploading Image process and it worked beautifully.

The way it's done there is slightly different to the way your doing it but hope it may guide you in the right direction if you don't get a solution right away.

Good Luck!

Set a few varibles like so

$folder = "upload/"
$suffix = rand();

change this line

   $path=move_uploaded_file($_FILES["file"]["tmp_name"],
     "upload/" . rand().$_FILES["file"]["name"]);

to

 $path=move_uploaded_file($_FILES["file"]["tmp_name"],
      $folder . $suffix . $_FILES["file"]["name"]);

Then your path will be,

$fullPath = $folder . $suffix . $_FILES["file"]["name"]);

under your current code you cant pull the file path out cause you have not assigned it to a variable you can grab and store.

your $path is all wrong. Correct your else with this

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM