Jump to content

preview with image upload


M.O.S. Studios

Recommended Posts

hey guys,

 

im playng with image uploading. i want to be able to show a preview of an image that was just uploaded with out having to movie it out of the temp dir the server sends it to.

 

this is my sample script,

 

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?> 



<html>
<body>
<img src="<?php echo $_FILES["file"]["tmp_name"].$_FILES["file"]["name"]?>">

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form></body>
</html>

 

my problem is that it refers to a dir that is below my /www/ directory

 

any one got any ideas of how to get around this????

 

 

thanks in advance

Link to comment
https://forums.phpfreaks.com/topic/139730-preview-with-image-upload/
Share on other sites

You can create a special script that just displays the image.  Then, you reference that script in your image tag:

 

<img src="image.php?tmp_name=vwuqsu" />

 

And the source of image.php would look something like this:

<?php
$file = 'path/to/tmp/' . $_GET['tmp_name'];

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.