Hi there,

I have some code which quite nicely uploads PDF files to the server:

if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
  //Check if the file is JPEG image and it's size is less than 350Kb
  $filename = basename($_FILES['uploaded_file']['name']);
  $ext = substr($filename, strrpos($filename, '.') + 1);
  if (($ext == "pdf") && ($_FILES["uploaded_file"]["type"] == "application/pdf") &&
    ($_FILES["uploaded_file"]["size"] < 4550000)) {
    //Determine the path to which we want to save this file
      $newname = dirname(__FILE__).'/Invoices/'.$filename;
      //Check if the file with the same name is already exists on the server
      if (!file_exists($newname)) {
        //Attempt to move the uploaded file to it's new place
        if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
           echo "It's done! The file has been saved as: ".$newname;
        } else {
           echo "Error: A problem occurred during file upload!";
        }
      } else {
         echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists";
      }
  } else {
     echo "Error: Only .pdf images are accepted for upload";
  }
} else {
 echo "Error: No file uploaded";
}
$varname = $_POST[$newname];
echo "<SCRIPT LANGUAGE='javascript'>refreshParent();</SCRIPT>";
?>

HTML:

<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload: <input name="uploaded_file" type="file" />   <br>
<input type="submit" value="Upload" />
</form>

What I would like to do is have the file upload, then return the file path to a textbox on the parent webpage. Any idea how to close my upload.php page and return the file path?

Thanks in advance,

Mapper99

Recommended Answers

All 5 Replies

You already did echoed the uploaded file path on the server.
you just need to show the same as a innerHTML of the textbox.

I havent tested this, try this if its work for you -

if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
           echo "It's done! The file has been saved as: ".$newname;
		   $str = "document.write('javascript.getElementById('txtReturnPath').innerHTML = $newname ');"
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload: <input name="uploaded_file" type="file" />   <br>
<input type="submit" value="Upload" />
<br><br>
File Path on Server: <input type="text" name="txtReturnPath" id="txtReturnPath"  />
</form>
</body>
</html>

Thanks for your help. This should work. The problem is that there are two php files being used. When I click on the upload button on my first PHP page, the new PHP page loads, executes the upload, and lets the user know what happened. I need this page to close (or, not even display at all), then update a text box on the parent page. Does this make sense?

Thanks

Thanks for this post

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.