Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Opendir problem z wyświetleniem plików
Forum PHP.pl > Forum > Przedszkole
44x
Cześć!

Mam drobny problem ze skryptem galerii. Skrypt nie jest mój,jednak na jego podstawie chcę budować dalsza część skryptu.

Skrypt ma za zadanie wczytać pliki graficzne. I wczytuje je jak należy. Problem zaczyna się gdy chce zmienić ścieżkę odczytu.
Oryginalnie skrypt wczytuje obrazki z katalogu głównego. Jedyna zmiana jaką wprowadziłem w skrypcie to właśnie ścieżka opendir.
Pliki oczywiście wczytuje,ale już nie wyświetla obrazków. Nie potrafię za bardzo sobie z tym poradzić sad.gif
Jakieś wskazówki?

zawartość pliku galerii
  1. <?php if(isset($_REQUEST['big_image']) and $_REQUEST['big_image']!=''){?>
  2. <?php
  3. $image_title = strtolower($_REQUEST['big_image']);
  4. $image_title = str_replace('_',' ',$image_title);
  5. $image_title = str_replace('.jpg','',$image_title);
  6.  
  7. ?>
  8. <?php }?>
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml">
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  14.  
  15. <?php if(isset($_REQUEST['big_image']) and $_REQUEST['big_image']!=''){?>
  16. <title><?php echo $image_title;?></title>
  17. <?php } else {?>
  18. <title>Quick Photo Gallery</title>
  19. <?php }?>
  20.  
  21. </head>
  22.  
  23. <body>
  24.  
  25.  
  26.  
  27.  
  28.  
  29. <?php if(isset($_REQUEST['big_image']) and $_REQUEST['big_image']!=''){?>
  30.  
  31. <h1 style="text-transform:capitalize;"><?php echo $image_title;?></h1>
  32.  
  33. <?php list($image_width, $image_height) = getimagesize($_REQUEST['big_image']); ?>
  34.  
  35. <img src="image.php?file=<?php echo $_REQUEST['big_image'];?>"
  36. class="img-responsive">
  37.  
  38.  
  39.  
  40.  
  41.  
  42. <?php }?>
  43.  
  44.  
  45. <?php
  46. if(!function_exists('get_file_extension')){
  47. function get_file_extension($filename) {
  48. $filename = strtolower($filename) ;
  49. $exts = split("[/\\.]", $filename) ;
  50. $n = count($exts)-1;
  51. $exts = $exts[$n];
  52. return $exts;
  53. }
  54. }
  55.  
  56. if ($handle = opendir('./generator')) {
  57. /* This is the correct way to loop over the directory. */
  58. while (false !== ($file = readdir($handle))) {
  59. if(get_file_extension(strtolower($file)) == 'jpg' and $file!= 'no_image.jpg'){
  60.  
  61. $image_title = strtolower($file);
  62. $image_title = str_replace('_',' ',$image_title);
  63. $image_title = str_replace('.jpg','',$image_title);
  64.  
  65. echo '<div style="border:1px solid #EBEBEB; margin-right:10px; margin-bottom:10px; padding:5px; width:auto; display:block; float:left;"><a href="submitnews.php?big_image='.$file.'"><img border="0" src="image.php?file='.$file.' alt="'.$image_title.'" title="'.$image_title.'"/></a></div>';
  66. }
  67. }
  68.  
  69. closedir($handle);
  70. }
  71. ?>
  72. <div style="clear:both;">
  73. <p style="margin:0px; padding:3px; background-color:#FAFAFA; border:1px solid #EBEBEB; font-size:10px; font-family:Arial, Helvetica, sans-serif;">Script powered by thewebhelp.com <a style="color:#006699;" href="http://www.thewebhelp.com/php/quick_photo_gallery/">quick photo gallery</a>.</p>
  74. </div>
  75.  
  76. </body>
  77. </html>


Do działania skryptu wykorzystywany jest tez plik images. Próbowałem tutaj zmienić oryginalne ściezki ale i to nic nie dało,dlatego wrzucam plik oryginalny
  1. <?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
  2. <?php
  3. $requested_width = $_REQUEST['width'];
  4. $requested_height = $_REQUEST['height'];
  5.  
  6. $partial_name = str_replace('.jpg','',strtolower($_REQUEST['file']));
  7.  
  8. if (file_exists($partial_name.'.jpg')){
  9. list($original_width, $original_height) = getimagesize($partial_name.'.jpg');
  10. } else {
  11. // if the original file is not there then stop everything and show a default thumb
  12. echo '<p>No &quot;file&quot; was defined in url.</p><p>Script powered by thewebhelp.com <a href="http://www.thewebhelp.com/php/quick_photo_gallery/">quick photo gallery</a>.</p>';
  13. }
  14.  
  15. header("Content-type: image/jpg");
  16.  
  17. // if original image is bigger than requested then calculate proportions in order to scale it down
  18. if(($original_width>$requested_width || $original_height >$requested_height) and isset($requested_width) and isset($requested_height) and $requested_width!='' and $requested_height!=''){
  19.  
  20. $proportions = $original_width/$original_height;
  21.  
  22. // show the image at the maximum height size but ...
  23. $new_height = $requested_height;
  24. $new_width = round($requested_height*$proportions);
  25. // but ... if above calculated width is over the given limit then scal it down according to given width
  26. if(round($requested_height*$proportions)>$requested_width){
  27. $new_width = $requested_width;
  28. $new_height = round($requested_width/$proportions);
  29. }
  30.  
  31. }else {
  32. $new_width = $original_width;
  33. $new_height = $original_height;
  34. // show original file without any resizing "image_cache/20.jpg"
  35. if(file_exists('image_cache/'.$partial_name.'.jpg')){
  36. header("Location: image_cache/".$partial_name.".jpg");
  37. }
  38. }
  39.  
  40.  
  41. // now that we know the resized file check to see if file already exists "image_cache/20_800x600.jpg" and load it, else create it below
  42. if(file_exists('image_cache/'.$partial_name.'_'.$new_width.'x'.$new_height.'.jpg')){
  43. header("Location: image_cache/".$partial_name."_".$new_width."x".$new_height.".jpg");
  44. }
  45.  
  46.  
  47. $file = $partial_name.'.jpg';
  48.  
  49. // set quality to 100
  50. if(!isset($quality)){
  51. $quality= 100;
  52. }
  53.  
  54. // get width and height of original image
  55. $imagedata = getimagesize($file);
  56. $original_width = $imagedata[0];
  57. $original_height = $imagedata[1];
  58.  
  59. // if orignal image is smaller than 550px then do NOT increase its size to 550
  60. if($original_width<$new_width){
  61. $new_width = $original_width;
  62. }
  63.  
  64. // calculating width or height if one was not defined
  65. // leave this one first
  66. if(!isset($new_width) and !isset($new_height)){
  67. $new_width = $original_width;
  68. $new_height = $original_height;
  69. }
  70. if(!isset($new_height)){
  71. $new_height = $new_width*($original_height/$original_width);
  72. }
  73. if(!isset($new_width)){
  74. $new_width = $new_height*($original_width/$original_height);
  75. }
  76.  
  77. $smaller_image = imagecreatetruecolor($new_width, $new_height);
  78. $original_image = imagecreatefromjpeg($file);
  79.  
  80. imagecopyresampled($smaller_image, $original_image, 0, 0, 0, 0, $new_width, $new_height, $imagedata[0], $imagedata[1]);
  81.  
  82.  
  83.  
  84. // save the image
  85. if($new_width>140 and $new_height>100){
  86. imagejpeg($smaller_image,'image_cache/'.$partial_name.'_'.$new_width.'x'.$new_height.'.jpg',$quality);
  87. } else {
  88. imagejpeg($smaller_image,'image_cache/'.$partial_name.'_'.$new_width.'x'.$new_height.'.jpg',$quality);
  89. }
  90.  
  91. // make the image 644 (0644)
  92. chmod('image_cache/'.$partial_name.'_'.$new_width.'x'.$new_height.'.jpg',0644);
  93.  
  94. imagedestroy($original_image);
  95. imagedestroy($smaller_image);
  96. imagedestroy($watermarked_image);
  97.  
  98. // read the new image
  99. header('Location: image_cache/'.$partial_name.'_'.$new_width.'x'.$new_height.'.jpg');
  100. ?>
gitbejbe
pierwsza rzecz:
ustawienia praw do folderu/pliku.

druga rzecz:
sprawdzałeś w którym dokładnie miejscu brakuje spełnienia warunku ?

trzecia rzecz:
to wygląda na jakiś tutorial, jeśli się uczysz to postaraj się po kolei przepisać ten kod i sprawdzać jak to działa.

czwarta rzecz:
jeśli potrzebujesz taką funkcję i nie interesuje Cię jak to działa, to weź jakiś gotowy polecany skrypt z githuba a nie babrasz się z tutorialami - bo ten kod po za wytłumaczeniem jak to mniej więcej działa, nie jest dobrym przykładem do użycia - chociażby z uwagi na fakt że teraz męczysz się jak go poprawić aby zmienić ścieżkę zapisu. Pierwszy lepszy gotowiec: https://github.com/samayo/bulletproof
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.