Keyth Posted November 23, 2012 Share Posted November 23, 2012 (edited) Can anybody help with this please? Ive migrated server from oldbox to virtual dogsb machine and now when running the below script for some reason the image appears blank within the browser. This was written by developer whos not working for my company now and Im not a PHP coder, so need a little help! :'( I have looked on net etc and tried adapting code but cannot get image to appear. Im wondering if its an apache thing or php module needs loading??? Using Firebug outputs the following error: Image corrupt or truncated: http:// www.companydo...jIzMTAxMDAuanBn <?php $myForm = "<form action='#' method='POST' enctype='multipart/form-data'> Filename: <input type='file' name='ff' /> <input type='submit' value='Create Encoded URL...' /> </form>"; $myPass = "sbsf"; if(isset($_GET["v"])==true) { if(trim($_GET["v"])=="") { if(isset($_GET["pass"])){ if($_GET["pass"]==$myPass){ echo $myForm; } } } else { $xx=myDecode($_GET["v"]); switch(strtoupper(substr($xx,-3,3))) { case "JPG": header('Content-Type: image/jpeg'); $type = 'image/jpeg'; break; case "PNG": header('Content-Type: image/png'); $type = 'image/png'; break; case "GIF": header('Content-Type: image/gif'); $type = 'image/gif'; break; default: header('Content-Type: image/jpeg'); $type = 'image/jpeg'; break; } header('Content-Type:'.$type); header('Content-Length: ' . filesize($xx)); readfile($xx); } } if(isset($_FILES["ff"])) { $vc = $_FILES["ff"]; $vx = myEncode(basename($vc["name"])); $vxx = move_uploaded_file($vc["tmp_name"], "" . $vc["name"]); echo "<strong>External:</strong> "; echo "<a href='http://www.companydomain.co.uk/fbin/?v=$vx'>http://www.companydomain.co.uk/fbin/?v=$vx</a><br>"; } function myDecode($str){ return base64_decode(urldecode($str)); } function myEncode($str){ return urlencode(base64_encode($str)); } ?> Thanks for any help you can offer. PS: All this script does is copy a file into the directory and provide a masked url which can be given to a user by email. Edited November 23, 2012 by Keyth Quote Link to comment https://forums.phpfreaks.com/topic/271064-blank-image-appears-as-content-type-imagejpeg/ Share on other sites More sharing options...
Muddy_Funster Posted November 23, 2012 Share Posted November 23, 2012 given this started after a server move, any chance the paths are now different from the original setup? Quote Link to comment https://forums.phpfreaks.com/topic/271064-blank-image-appears-as-content-type-imagejpeg/#findComment-1394583 Share on other sites More sharing options...
Christian F. Posted November 23, 2012 Share Posted November 23, 2012 First of all I'd like to point out that the password check for the form is completely useless, as anyone can simply send a POST with a file attached and have it processed. You're only adding the password check to display the form, not process the submitted files, after all. The urldecode () in the MyDecode () function is also not necessary, as the parameters are already decoded by the server. In fact, this can cause problems, in some circumstances. You'll also want to use die () after the readfile () statement, to prevent the PHP script from further parsing (and thus adding any unwanted content to the end of the image). And do yourself, and us, the favour of using proper variable names. Names that describe their content. It'll make things a whole lot easier to understand, and thus maintain. You will not remember 2 months from now what the variable $vx contained, nor how it was different from $vxx. That said, I can't see anything immediately wrong with your script. Try removing the header () calls, and see what you get from PHP. Should give you an indication on what's wrong. Quote Link to comment https://forums.phpfreaks.com/topic/271064-blank-image-appears-as-content-type-imagejpeg/#findComment-1394597 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.