Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Śmieszny problem z wyświetleniem obrazka
Forum PHP.pl > Forum > Przedszkole
mihi
Mam skrypt uploadu obrazka na serwer..wcześniej tworzy miniaturkę, nazwę pliku automatycznie dodaje do bazy danych... i nie wiem dlaczego w bazie danych wyświetla się złą ścieżka do pliku :/..Pomoże ktoś ? Bardzo mi zależy na czasie więc każda odpowiedz mile widziana smile.gif

skrypt wygląda tak :

  1. <center>
  2. <?
  3. if ($_POST['submit']=="dodaj")
  4.  {
  5.  $folder = "zdjecia/";
  6.  $prefix_miniaturka = "min_";
  7.  $prefix = "";
  8.  $max_kopia = 600;
  9.  $max_miniaturka = 160;
  10.  $jpeg_jakosc = 70;
  11.  
  12.  if ($idtemp=="")
  13. {
  14. $idtemp=time();
  15. for ($x=0; $x<4; $x++)
  16.  {
  17.  $zn=rand (0,9);
  18.  $idtemp=$idtemp.$zn;
  19.  }
  20. }
  21.  $plikzdjecietmp=$_FILES['zdjecia']['tmp_name'];
  22.  if (is_uploaded_file($plikzdjecietmp))
  23. {
  24. if (isset($_FILES['zdjecia']['tmp_name']))
  25.  {
  26.  $plikzdjecietyp=$_FILES['zdjecia']['type'];
  27.  if (($plikzdjecietyp!="image/jpeg")&&($plikzdjecietyp!="image/pjpeg")) $blad="nieprawidłowy typ pliku! ($plikzdjecietyp)";
  28.  else
  29. {
  30. $image_info=getimagesize($plikzdjecietmp);
  31. $plikzdjecieszerokosc=$image_info[0];
  32. $plikzdjeciewysokosc=$image_info[1];
  33. // w tym miejscu intuicyjnie zmieniłem warunek, na sprawdzanie, czy wymiary sa wie
    ksze wniz max-kopia, a nie mniejsze. zmień to na powrót, jeżeli jest teraz źle
  34. if (($plikzdjecieszerokosc>$max_kopia)&&($plikzdjeciewysokosc>$max_kopia)) $blad="nieprawidłowe wymiary zdjęcia!";
  35. }
  36.  }
  37. else $blad="nieprawidłowy plik!";
  38. if ($blad=="")
  39.  {
  40.  $plik = $plikzdjecietmp;
  41.  $plik_nazwa = $idtemp.'.jpg';
  42.  ini_set('memory_limit', 40000000);
  43.  $orginal = imagecreatefromjpeg($plik);
  44.  $s_orginal = imagesx($orginal);
  45.  $w_orginal = imagesy($orginal);
  46.  if ($s_orginal>$w_orginal)
  47. {
  48. $format=1;
  49. $s_kopia = $max_kopia;
  50. $w_kopia = ceil($s_kopia*0.75);
  51. $s_miniaturka = $max_miniaturka;
  52. $w_miniaturka = ceil($s_miniaturka*0.75);
  53. $wspolczynnik=$w_orginal/$s_orginal;
  54. if ($wspolczynnik<=0.75)
  55.  {
  56.  $w_orginal_clon = $w_orginal;
  57.  $s_orginal_clon = floor($w_orginal/0.75);
  58.  }
  59. else
  60.  {
  61.  $s_orginal_clon = $s_orginal;
  62.  $w_orginal_clon = ceil($s_orginal*0.75);
  63.  }
  64. }
  65.  else
  66. {
  67. $format=2;
  68. $w_kopia = $max_kopia;
  69. $s_kopia = ceil($w_kopia*0.75);
  70. $w_miniaturka = $max_miniaturka;
  71. $s_miniaturka = ceil($w_miniaturka*0.75);
  72. $wspolczynnik=$s_orginal/$w_orginal;
  73. if ($wspolczynnik<=0.75)
  74.  {
  75.  $s_orginal_clon = $s_orginal;
  76.  $w_orginal_clon = floor($s_orginal/0.75);
  77.  }
  78. else
  79.  {
  80.  $w_orginal_clon = $w_orginal;
  81.  $s_orginal_clon = ceil($w_orginal*0.75);
  82.  }
  83. }
  84.  $w_clon_przesun = ceil(($w_orginal_clon - $w_orginal)/2);
  85.  $s_clon_przesun = ceil(($s_orginal_clon - $s_orginal)/2);
  86.  $orginal_clon = imagecreatetruecolor($s_orginal_clon, $w_orginal_clon);
  87.  imagecopy($orginal_clon, $orginal, $s_clon_przesun, $w_clon_przesun, 0, 0, $s_orginal, $w_orginal);
  88.  imagedestroy($orginal);
  89.  $kopia = imagecreatetruecolor($s_kopia, $w_kopia);
  90.  imagecopyresized($kopia, $orginal_clon, 0, 0, 0, 0, $s_kopia, $w_kopia, $s_orginal_clon, $w_orginal_clon);
  91.  imagejpeg($kopia, $folder.$prefix.$plik_nazwa, $jpeg_jakosc);
  92.  imagedestroy($kopia);
  93.  $miniaturka = imagecreatetruecolor($s_miniaturka, $w_miniaturka);
  94.  imagecopyresized($miniaturka, $orginal_clon, 0, 0, 0, 0, $s_miniaturka, $w_miniaturka, $s_orginal_clon, $w_orginal_clon);
  95.  imagedestroy($orginal_clon);
  96.  imagejpeg($miniaturka, $folder.$prefix_miniaturka.$plik_nazwa, $jpeg_jakosc);
  97.  imagedestroy($miniaturka);
  98. $connection = mysql_connect("localhost","pphfarina3","1234567iola");
  99. $db = mysql_select_db("pphfarina3", $connection);
  100. $name = 'zdjecia/'.$_FILES['plik_nazwa']['name'];
  101. $sql="INSERT INTO obrazki (sciezka)
  102. VALUES
  103. ('$name')";
  104.  
  105. if (!mysql_query($sql))
  106. {
  107. die('Błąd: ' . mysql_error());
  108. }
  109. echo "Plik został zapisany!<br>";
  110.  }
  111. }
  112.  else $blad="nieprawidłowe dane!";
  113.  }
  114. if ($blad!="") echo "<br/>błąd: $blad<br/>";
  115.  echo '
  116. <div style="float: left; width: 300px;">
  117.  <form id="entryform" action="" method="post" enctype="multipart/form-data">
  118. <div style="float: left; width: 300px;">
  119.  <span style="font-weight: bold; text-align: left;">
  120. wybierz plik graficzny do wysłania
  121.  </span>
  122.  <div style="height: 25px; overflow: hidden;">
  123. <input type="file" id="plik" name="zdjecia" style="height: 20px; background-color: #FFFFFF; font-size: 12px; font-family: Verdana; border: solid #000000 1px;" />
  124. <input type="submit" name="submit" value="dodaj" style="width: 60px; height: 20px; background-color: #FFFFFF; font-size: 12px; font-family: Verdana; border: solid #000000 1px;" />
  125.  </div>
  126. </div>
  127.  </form>
  128. </div>
  129. ';
  130. ?>


Ale wydaje mi się że jest błąd przy dodawaniu nazwy pliku do bazy (zmienna)..sprawdziłby ktoś ? Z góry wielkie dzięki za pomoc smile.gif
Wieviór
Zła ścieżka, tzn.? Jaka np.?

Popraw:

  1. <?php
  2. $name = 'zdjecia/'.$_FILES['plik_nazwa']['name'];
  3. $sql="INSERT INTO obrazki (sciezka)
  4. VALUES
  5. ('".$name."')";
  6. ?>
b_chmura
o jejku ale bałagan, napisz to jeszcze raz i od początku:P do generowania miniaturek skorzystaj z gotowej funkcji którą znajdziesz na tym forum w "gotowych rozwiązaniach"
mihi
Mhmm.. no bo jak ładuję plik np. charlie.jpg za pomcą tego skryptu na serwer to zamienia ich nazwy np. na 93847356.jpg i min_93847356.jpg..a do bazy nie kopiuje nazwy pliku (tej nowej)... i nie wiem jaką zmienną wpisać przy tym dodawaniu do bazy żeby pobierało te "nowe" nazwy..
mihi
Albo jak przerobić ten skrypt żeby całkowicie nie zmieniał nazwy ..tylko dodawał prefiks w miniaturkach..
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.