vinpkl Posted July 29, 2009 Share Posted July 29, 2009 hi all i m using the following gd script http://www.anyexample.com/programming/php/php_multiple_photo_thumbnail_generator.xml <?php // Don't forget to change next two variables // Or create web-server writable directory aeupload in // the directory with this php file $upload_dir = "e:/www/htdocs/upload"; // Directory for file storing // filesystem path $web_upload_dir = "/www/htdocs/upload"; //chmod('/test_images/', 0777); // Directory for file storing // web-server dir /* upload_dir is filesystem path, something like /var/www/htdocs/files/upload or c:/www/files/upload web upload dir, is the webserver path of the same directory. If your upload-directory accessible under www.your-domain.com/files/upload/, then web_upload_dir is /files/upload */ // testing upload dir // * * * * * // INSERT SOURCE CODE OF thumbnail_calcsize() AND thumbnail_generator() HERE // * * * * * function thumbnail_calcsize($w, $h, $square) { $k = $square / max($w, $h); return array($w*$k, $h*$k); } function thumbnail_generator($srcfile, &$params){ // getting source image size @list($w, $h) = getimagesize($srcfile); if ($w == false) return false; // checking params array if (!(is_array($params)&&is_array($params[0]))) return false; $src = ImageCreateFromJpeg($srcfile); list($s1_w, $s1_h) = thumbnail_calcsize($w, $h, $params[0]['size']); // Create first thumbnail // Remember, first thumbnail should be largest thumbnail $img_s1 = imagecreatetruecolor($s1_w, $s1_h); imagecopyresampled($img_s1, $src, 0, 0, 0, 0, $s1_w, $s1_h, $w, $h); imagedestroy($src); // Destroy source image // Other thumbnails are just downscaled copies of the first one for($i=1; $i<sizeof($params); $i++) { list($cur_w, $cur_h) = thumbnail_calcsize($w, $h, $params[$i]['size']); $img_cur = imagecreatetruecolor($cur_w, $cur_h); imagecopyresampled($img_cur, $img_s1, 0, 0, 0, 0, $cur_w, $cur_h, $s1_w, $s1_h); imagejpeg($img_cur, $params[$i]['file'], 90); imagedestroy($img_cur); } // Saving first thumbnail imagejpeg($img_s1, $params[0]['file'], 90); imagedestroy($img_s1); return true;} // Upload processing part: if (isset($_FILES['file']) && ($_FILES['file']['size'] > 0)) { $u_filename = basename($_FILES['file']['name']); move_uploaded_file($_FILES['file']['tmp_name'], "/upload/" . $_FILES['file']['name']); // Setting params array for thumbnail_generator $params = array(array('size' => 220, 'file' => $upload_dir.'/s1-'.$u_filename), array('size' => 140, 'file' => $upload_dir.'/s2-'.$u_filename), array('size' => 80, 'file' => $upload_dir.'/s3-'.$u_filename)); if (thumbnail_generator($upload_dir.'/'.$u_filename, $params) == false) die("Error processing uploaded file {$u_filename}"); // ok, redirecting // same host (HTTP_HOST), same script (PHP_SELF) // add ?file=filename parameter header("Location: http://{$_SERVER['HTTP_HOST']}{$PHP_SELF}?file={$u_filename}"); exit();} // Upload processing end ?> <html><head> <title>PHP multiple thumbnail generator</title> </head><body> <?php if (!isset($_GET['file'])) {// Following HTML code is outputed when user just loads this page?> <h1>Upload image:</h1> <form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data"> <script type="text/javascript"> /* This function is called when user selects file in file dialog */ function checkext(upload_field) { // this is just an example of checking // image file extension - jpg/jpeg var re_text = /\.jpeg|\.jpg/i; var filename = upload_field.value; /* Checking file type */ if (filename.search(re_text) == -1) { alert("Please select JPEG file"); upload_field.value = ''; } return true; } </script> Select jpeg photo: <input type="file" name="file" id="file" onChange="return checkext(this)"> <br><br><input type="submit" value="upload & generate thumbnails"> </form> <?php }else { // And this HTML code is shown when image was uploaded $file = $_GET['file'];?> <h1>Photo: <?php echo $file; ?> </h1> <div align="center"> <!-- Outputting thumbnails --> <img src="<?php echo $web_upload_dir.'/s1-'.$file; ?>"> <img src="<?php echo $web_upload_dir.'/s2-'.$file; ?>"> <img src="<?php echo $web_upload_dir.'/s3-'.$file; ?>"> <br><br> <!-- Outputting uploaded photo --> <img src="<?php echo $web_upload_dir.'/'.$file; ?>"> </div> <?php }?> <br><br><br> Example by <a href="http://www.anyexample.com/">AnyExample</a> </body> </html>?> everytime i get the following error Warning: move_uploaded_file(/upload/banner.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:\xampp\htdocs\gd_upload.php on line 59 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'E:\xampp\tmp\php13.tmp' to '/upload/banner.jpg' in E:\xampp\htdocs\gd_upload.php on line 59 Error processing uploaded file banner.jpg i have created "upload" folder in E:/Xampp/htdocs i have amended this in that script $upload_dir = "e:/www/htdocs/upload"; vineet Quote Link to comment Share on other sites More sharing options...
patrickmvi Posted July 29, 2009 Share Posted July 29, 2009 I would venture to say it has something to do with the path you're trying to use. I would think that since you appear to be on a Windows box, the path you'd want to move the file to would need to either be relative (upload/banner.jpg without the leading /) or full including the drive letter before the path. Quote Link to comment Share on other sites More sharing options...
vinpkl Posted July 29, 2009 Author Share Posted July 29, 2009 hi patrick if i change move_uploaded_file($_FILES['file']['tmp_name'], "/upload/" . $_FILES['file']['name']); to move_uploaded_file($_FILES['file']['tmp_name'], "upload/" . $_FILES['file']['name']); then i get error Error processing uploaded file banner.jpg whether i remove the slash from front or slash from back of "upload" i get the same error. vineet I would venture to say it has something to do with the path you're trying to use. I would think that since you appear to be on a Windows box, the path you'd want to move the file to would need to either be relative (upload/banner.jpg without the leading /) or full including the drive letter before the path. Quote Link to comment 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.