Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: upload fotek i problem
Forum PHP.pl > Forum > Przedszkole
podziak
Witam.

Mam taki skrypt i nie wiem dlaczego uploadujac jedno zdjecie pojawiaja mi sie bledy typu:

Warning: getimagesize(../foto/): failed to open stream: Permission denied in c:\usr\krasnal\www\newsy\admin\funkcje.php on line 8

Warning: Division by zero in c:\usr\krasnal\www\newsy\admin\funkcje.php on line 10

Dlaczego przy uploadzie plikow pojawiaja sie te bledy i dlaczego nie kce mi uploadowac jezeli dodaje tylko jeden plik.

skrypt wyglada tak:
  1. <?
  2. if(isset($submit)):
  3. $user_id=$HTTP_SESSION_VARS['prawid_uzyt'];
  4. $data=date('Y-m-d');
  5.  
  6.  
  7. include ("funkcje.php");  
  8.  
  9.  
  10. for ($i=1; $i<7;$i++){
  11.  
  12. $strUploadDir = '../foto/' . $_FILES['plik'.$i]['name'];
  13. $strUploadDir3 = '../foto/th2_' . $_FILES['plik'.$i]['name'];
  14. move_uploaded_file( $_FILES['plik'.$i]['tmp_name'], $strUploadDir );
  15.  
  16. create_thumb_wfixed($strUploadDir, $strUploadDir, 500,$quality=90);
  17. create_thumb_wfixed($strUploadDir, $strUploadDir3, 120,$quality=90);
  18.  
  19. ${'plik'.$i} = $_FILES['plik'.$i]['name'];
  20. echo ${'plik'.$i}."<br>";
  21. }
  22. $sql = "INSERT INTO news VALUES (null, '$data', '$tytul', '$tresc_krotka', '$tresc_dluga', '$user_id', '$plik1' ,'$plik2', '$plik3', '$plik4', '$plik5', '$plik6')";
  23. mysql_query($sql);
  24. // echo "<HEAD><META HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=?action=show_news\"></HEAD>";
  25. echo "<BODY><center><h3>Wiadomosc zostala dodana do bazy</h3></center>";
  26. else:
  27. ?>
  28. <TABLE width="650" align="center" border=0>
  29. <TR><TD align="center" class="tekst"><b>Dopisz wiadomosc do bazy danych</b></TD></TR>
  30. <TR><TD align="center" class="tekst"><b>Tytul:</b></TD></TR>
  31. <TR><TD align="center"><input type="text" size="70" name="tytul" class="formularz"></center></TD></TR>
  32. <TR><TD align="center" class="tekst"><b>Tresc krótka:</b></TD></TR>
  33. <TR><TD align="center"><textarea name="tresc_krotka" cols="70" rows="3" wrap="VIRTUAL" class="formularz"></textarea></TD></TR>
  34. <TR><TD align="center" class="tekst"><b>Tresc:</b></TD></TR>
  35. <TR><TD align="center"><textarea name="tresc_dluga" cols="70" rows="10" wrap="VIRTUAL" class="formularz"></textarea></TD></TR>
  36. <?
  37. for($i=1; $i<7; $i++) {
  38. echo "<TR>
  39. <TD align=center>
  40. <input type=hidden name=MAX_FILE_SIZE value=300000>
  41. <input name=plik".$i." type=file class=formularz>
  42. </TD></TR>";
  43. }
  44. ?>
  45. <TR><TD align="center"><input type="submit" name="submit" value="Dodaj" class="formularz"></TD></TR>
  46. </TABLE>
  47. <?
  48. endif;
  49. ?>


Dzieki za pomoc
nospor
a jak wyglada plik funkcje.php ? Bo to w nim masz blad.

pozatym probujesz otworzyc plik ../foto/ i jak widac, pliku tu nie ma zadnego. sciezka konczy sie na katalogu
podziak
Plik funkcje.php
  1.  
  2. <?
  3. function create_thumb_wfixed($file_name_src, $file_name_dest, $weight,$quality=100)
  4. {
  5.  if (file_exists($file_name_src) && isset($file_name_dest))
  6.  {
  7.  $est_src = pathinfo(strtolower($file_name_src));
  8.  $est_dest = pathinfo(strtolower($file_name_dest));
  9.  $size = getimagesize($file_name_src);
  10.  $w = number_format($weight, 0, ',', '');
  11.  $h = number_format(($size[1]/$size[0])*$weight,0,',','');
  12.  
  13.  if ($est_dest['extension'] == "gif" || $est_dest['extension'] == "jpg")
  14.  {
  15.  $file_name_dest = substr_replace($file_name_dest, 'jpg', -3);
  16.  $dest = imagecreatetruecolor($w, $h);
  17.  //imageantialias($dest, TRUE);
  18.  } elseif ($est_dest['extension'] == "png")
  19.  {
  20.  $dest = imagecreatetruecolor($w, $h);
  21.  //imageantialias($dest, TRUE);
  22.  } else
  23.  {
  24. return FALSE;
  25.  }
  26.  
  27.  switch($size[2])
  28.  {
  29.  case 1:  //GIF
  30.  $src = imagecreatefromgif($file_name_src);
  31.  break;
  32.  case 2:  //JPEG
  33.  $src = imagecreatefromjpeg($file_name_src);
  34.  break;
  35.  case 3:  //PNG
  36.  $src = imagecreatefrompng($file_name_src);
  37.  break;
  38.  default:
  39.  return FALSE;
  40.  break;
  41.  }
  42.  imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
  43.  
  44.  switch($size[2])
  45.  {
  46.  case 1:
  47. imagegif($dest,$file_name_dest);
  48.  case 2:
  49.  imagejpeg($dest,$file_name_dest, $quality);
  50.  break;
  51.  case 3:
  52.  imagepng($dest,$file_name_dest);
  53.  }
  54.  return TRUE;
  55.  }
  56.  return FALSE;
  57. }
  58. ?>

sorka ale jeszcze nie jestem tak biegly w te klocki
nospor
daj se tak:
  1. <?php
  2.  
  3. //....
  4. echo $strUploadDir.'<br />'; // w pewnej iteracji ta zmienna jest zla
  5.  
  6. create_thumb_wfixed($strUploadDir, $strUploadDir, 500,$quality=90);
  7. create_thumb_wfixed($strUploadDir, $strUploadDir3, 120,$quality=90);
  8. //....
  9.  
  10. ?>

domyslam sie ze nie wypelniles wszystkich pól z plikami i dlatego : $_FILES['plik'.$i]['name'] zwraca ci nic
podziak
troszke nie lapie bo skrypt ogolnie jak daje dwie fotki to dodaje elegancko ale w przypadku jednej fotki juz sie wykrzacza

i nie rozumiem tego zapisu
  1. <?php
  2. echo $strUploadDir.'<br />';
  3. ?>
bo akurat to nie jest najwazniejsza czescia skrypu
nospor
Cytat
jak daje dwie fotki to dodaje elegancko ale w przypadku jednej fotki
Oto mi wlasnie chodzi. ze nie wypelniasz wszystkich pol z plikami, a operacje robisz na wszystkich. nie sprawdzasz wogole czy dany input zostal wypelniony

a tamtem zapis mial ci pokazac, ze wlasnie nie wszystko wypelniles. niewazne...

przed uplodem musisz zrobic warunek czy wogole jest co uploadowac
  1. <?php
  2.  
  3. //....
  4. for ($i=1; $i<7;$i++){
  5.  
  6. if (!empty(_FILES['plik'.$i]['name'])){
  7. //a tu twoj kod uploadu
  8. }
  9. }
  10. ?>
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.