M.O.S. Studios Posted January 6, 2009 Share Posted January 6, 2009 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 More sharing options...
premiso Posted January 6, 2009 Share Posted January 6, 2009 You can always store the path in session then have a page called readImage.php which uses readfile and headers to display the image. Link to comment https://forums.phpfreaks.com/topic/139730-preview-with-image-upload/#findComment-731059 Share on other sites More sharing options...
flyhoney Posted January 6, 2009 Share Posted January 6, 2009 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; } ?> Link to comment https://forums.phpfreaks.com/topic/139730-preview-with-image-upload/#findComment-731060 Share on other sites More sharing options...
PFMaBiSmAd Posted January 6, 2009 Share Posted January 6, 2009 The temporary uploaded file $_FILES["file"]["tmp_name"] is destroyed when the form processing code ends. So, you will need to move/copy it somewhere if you want it to be available for an <img src="..."> tag. Link to comment https://forums.phpfreaks.com/topic/139730-preview-with-image-upload/#findComment-731098 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.