Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z uploadem
Forum PHP.pl > Forum > PHP
Lejto
Mam problem z uploadem pliku. I zmniejszeniem jego rozmiaru.
Jak wysyłam plik to takie błędy się pokazują:
Kod
Błąd
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/obrazy/053930sfhafgad.jpg) is not within the allowed path(s): (/home/www/:/usr/lib/php:/usr/local/lib/php:/tmp) in /old_drive/private/111/root/home/www/public_html/add_foto.php on line 80

Warning: chmod() [function.chmod]: open_basedir restriction in effect. File(/obrazy/053930sfhafgad.jpg) is not within the allowed path(s): (/home/www/:/usr/lib/php:/usr/local/lib/php:/tmp) in /old_drive/private/111/root/home/www/public_html/add_foto.php on line 82

Kody:
kod formularza:
  1. <FORM ACTION="add_foto.php" METHOD=POST enctype="multipart/form-data">
  2. <input class=form9 type="file" name="obraz" size="67"><br>
  3.  
  4. <INPUT TYPE="hidden" NAME="data" size="20" value="<? print (Date("Y-m-d")); ?>">
  5. <input type="hidden" name="PHPSESSID" value="<? echo $s_id;?>">
  6. <input type="hidden" name="kategoria_form" value="<? echo $id_k;?>">
  7. <input type="hidden" name="karet" value="<? echo $_GET[karet];?>">
  8.  
  9. <b>Treść</b><br>
  10. <TEXTAREA class=form9 NAME="opis" value="" ROWS="10" COLS="85"> </TEXTAREA><br><br />
  11. <input type="reset" class="form11" value="Wyczyść">&nbsp;<INPUT name="send" TYPE="submit" class="form11" value="Dodaj">
  12.  
  13.  
  14. </FORM>


add_foto.php
  1. <?
  2. session_start();//sesja
  3. $s_id = session_id();//pobiera id sesji do zmiennej
  4. $kategoria_form = $_POST['kategoria_form'];
  5. $album_form = $_POST['album_form'];
  6. $karet = $_POST['karet'];
  7. //laczenei z mysql
  8.  
  9. //pobieranie potrzebnych informacji na temat konfiguracji
  10.  
  11. $pobieranie_cnf = mysql_query ("SELECT * FROM conf");
  12. while ($zapisz_cnf = mysql_fetch_array($pobieranie_cnf)) {
  13. $jakosc_miniatury_inf=$zapisz_cnf['jakosc_miniatury'];
  14. $jakosc_zdjecia_inf=$zapisz_cnf['jakosc_zdjecia'];
  15. $wysokosc_zdjecia_inf=$zapisz_cnf['wysokosc_zdjecia'];
  16. $szerokosc_zdjecia_inf=$zapisz_cnf['szerokosc_zdjecia'];
  17. $napis_foto=$zapisz_cnf['napis_foto'];//treść napisu na zdjęciu
  18. $napis_kolor=$zapisz_cnf['napis_kolor'];//kolor napisu na zdjęciu
  19. $napis_wielkosc=$zapisz_cnf['napis_wielkosc'];//wielkość napisu na zdjęciu
  20. $napis_tlo=$zapisz_cnf['napis_tlo'];//tło napisu na zdjęciu
  21. $napis_font=$zapisz_cnf['napis_font'];//czcionka napisu na zdjęciu
  22. $wielkosc_pliku=$zapisz_cnf['wielkosc_pliku'];
  23.  
  24. }
  25.  
  26. $rozm = $_FILES['obraz']['size'];
  27. if($rozm > $wielkosc_pliku) {echo 'Błąd';}
  28.  
  29. //ustala typ mime pliku i tworzy odpowiedni prefix dla funkcji GD
  30. $typ_pliku = $_FILES['obraz']['type'];
  31.  
  32. switch($typ_pliku)
  33. {
  34. case 'image/jpeg':
  35. $pref_gd = "jpeg";
  36. break;
  37. case 'image/png':
  38. $pref_gd = "png";
  39. break;
  40.  case 'image/pjpeg':
  41. $pref_gd = "jpeg";
  42. break;
  43. }
  44.  
  45.  
  46. //koniec ustala typ mime pliku i tworzy odpowiedni prefix dla funkcji GD
  47.  
  48.  
  49. $nazwa1 = Date("His");//wykorzystanie daty do wygenerowania nowej nazwy dla pliku
  50. $nazwa2 = $_FILES['obraz']['name'];//pobranie nazwy pliku z tablicy
  51. $nazwa_zmieniona = "$nazwa1$nazwa2";//połączenie daty z nazwą pliku
  52.  
  53. //zamienia polskie litery z języczkami aby nie znalazły się w nazwie fotki
  54. $nazwa_zmieniona = strtolower($nazwa_zmieniona);
  55. $nazwa_zmieniona = ereg_replace(" ","_",$nazwa_zmieniona);
  56. $nazwa_zmieniona = ereg_replace("ą","a",$nazwa_zmieniona);
  57. $nazwa_zmieniona = ereg_replace("ę","e",$nazwa_zmieniona);
  58. $nazwa_zmieniona = ereg_replace("Ľ","z",$nazwa_zmieniona);
  59. $nazwa_zmieniona = ereg_replace("ż","z",$nazwa_zmieniona);
  60. $nazwa_zmieniona = ereg_replace("ó","o",$nazwa_zmieniona);
  61. $nazwa_zmieniona = ereg_replace("ł","l",$nazwa_zmieniona);
  62. $nazwa_zmieniona = ereg_replace("ś","s",$nazwa_zmieniona);
  63. $nazwa_zmieniona = ereg_replace("Ś","s",$nazwa_zmieniona);
  64. $nazwa_zmieniona = ereg_replace("ć","c",$nazwa_zmieniona);
  65.  
  66. $file = "/obrazy/".$nazwa_zmieniona.""; //dodaje adres i nazwę zdjęcia do zmiennej, która jet także wykorzystywana podczas tworzenia miniatury w pliku create_min
  67.  
  68. move_uploaded_file($_FILES['obraz']['tmp_name'],"/obrazy/".$nazwa_zmieniona);//wgrywa plik na serwer
  69.  
  70. chmod($file, 0755);
  71.  
  72. if (file_exists("/obrazy/".$nazwa_zmieniona)) { include ("create_min.php");} //tworzy 
  73.  
  74. if (file_exists("/miniatury/".$nazwa_zmieniona)) {
  75.  
  76. // tutaj juz nie wiem jak zrobic :( czy to musi być czy nie?
  77.  
  78. }
  79. ?>


create_min.php:
  1. <?
  2. //Tworzy miniaturę
  3.  
  4. $obrazek_minn = "$nazwa_zmieniona";
  5. $max_width = 150;//default 150
  6. $max_height = 113;//default 300
  7. $size = @getimagesize($file);
  8. $width = $size[0];
  9. $height = $size[1];
  10. $x_ratio = $max_width / $width;
  11. $y_ratio = $max_height / $height;
  12. if(($width <= $max_width) && ($height <= $max_height))
  13. {
  14.  $tn_width = $width;
  15.  $tn_height = $height;
  16. }
  17. else if(($x_ratio * $height) < $max_height)
  18. {
  19.  $tn_height = ceil($x_ratio * $height);
  20.  $tn_width = $max_width;
  21. }
  22. else
  23. {
  24.  $tn_width = ceil($y_ratio * $width);
  25.  $tn_height = $max_height;
  26. }
  27.  
  28. $func_plus_prefix_1 = "ImageCreateFrom".$pref_gd;
  29. $func_plus_prefix_2 = "image".$pref_gd;
  30.  
  31. $src = @$func_plus_prefix_1($file);
  32. $dst = @imagecreatetruecolor($tn_width, $tn_height);
  33. @imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
  34. //Header('Content-type: image/jpeg');
  35. @$func_plus_prefix_2($dst, "/miniatury/".$obrazek_minn, $jakosc_miniatury_inf);
  36.  
  37. //koniec tworzenia miniatury
  38.  
  39.  
  40. ?>

i tabela conf
  1. CREATE TABLE `conf` (
  2. `id` int(6) NOT NULL AUTO_INCREMENT,
  3. `pokaz_admin` char(1) DEFAULT 'T',
  4. `pokaz_ogalerii` char(1) DEFAULT '',
  5. `nazwa_galerii` longtext,
  6. `description` longtext,
  7. `keywords` longtext,
  8. `o_galerii` longtext,
  9. `ksiega_poz` varchar(4) DEFAULT '15',
  10. `ile_fotek` varchar(4) DEFAULT '16',
  11. `ile_fotek_gl` varchar(4) DEFAULT '3',
  12. `pokaz_licznik` char(1) DEFAULT 'T',
  13. `pokaz_ksiega` char(1) DEFAULT 'T',
  14. `pokaz_kontakt` char(1) DEFAULT NULL,
  15. `pokaz_koment` char(1) DEFAULT 'T',
  16. `blok_mysz` char(1) DEFAULT NULL,
  17. `pokaz_ocene` char(1) DEFAULT 'T',
  18. `pokaz_min_txt` char(1) DEFAULT 'T',
  19. `miniatury_opisy` char(1) DEFAULT NULL,
  20. `pokaz_news` char(1) DEFAULT NULL,
  21. `lokation_news` char(1) DEFAULT 'L',
  22. `index_robot` varchar(7) DEFAULT 'INDEX',
  23. `run_gzip` char(1) DEFAULT '',
  24. `users_zewn` char(1) DEFAULT NULL,
  25. `option1` char(1) DEFAULT NULL,
  26. `option2` char(1) DEFAULT NULL,
  27. `option3` char(1) DEFAULT NULL,
  28. `option4` char(1) DEFAULT NULL,
  29. `haslo_wyb` char(1) DEFAULT NULL,
  30. `haslo` varchar(200) DEFAULT NULL,
  31. `haslo_inf` varchar(100) DEFAULT NULL,
  32. `jakosc_miniatury` char(3) DEFAULT '97',
  33. `jakosc_zdjecia` char(3) DEFAULT '75',
  34. `wysokosc_zdjecia` varchar(5) DEFAULT '900',
  35. `szerokosc_zdjecia` varchar(5) DEFAULT '700',
  36. `wielkosc_pliku` varchar(10) DEFAULT '300000',
  37. `motyw` varchar(50) DEFAULT '',
  38. `uklad_strony` char(1) DEFAULT '',
  39. `napis_foto` varchar(200) DEFAULT NULL,
  40. `napis_kolor` varchar(200) DEFAULT 'FFFFFF',
  41. `napis_wielkosc` varchar(4) DEFAULT '10',
  42. `napis_tlo` varchar(100) DEFAULT '5A5A5A',
  43. `napis_font` varchar(50) DEFAULT 'arial.ttf',
  44. PRIMARY KEY (`id`),
  45. KEY `id` (`id`)
  46. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2

Pomocy! Upload z gotowej galerii działa tak więc nie mam problemów z konfiguracją php. Nie wiem czemu się pokazuje też błąd o treści Błąd (add_foto.php linia 28)skoro plik spełnia normy
kszychu
Podejrzewam, że przed /obrazy, /miniatury brakuje kropki oznaczającej aktualny katalog.
AxZx
sprawdz czy sciezki poprawne.
jest napisane ze bledy sa w linii 80 i 82 - w kodzie ktory przedstawiles nie wiadomo ktora to linia.

a tak przy okazji
po co ereg_replace jak mozna str_replace?
po co longtext dla nazwy galerii? rzeczywiscie ta nazwa bedzie miala 4 miliony znakow?smile.gif
wiem ze nie prosiles o ocene i komentarze kodu ale nie moglem sie powstrzymac.
Lejto
masz racje AxZx winksmiley.jpg ten skrypt w raz z bazą mam z imagegalery
zobacze z ścieżkami i dam znac

ok działa
edit
a jak wywalć wgrywanie na serwer ogr obrazu a zostawie tworzenie tylko miniatury można tak?
AxZx
zadaj pytanie po polsku to moze ktos cie zrozumie:)
kipero
Cytat(Lejto @ 16.01.2008, 15:22:19 ) *
masz racje AxZx winksmiley.jpg ten skrypt w raz z bazą mam z imagegalery
zobacze z ścieżkami i dam znac

ok działa
edit
a jak wywalć wgrywanie na serwer ogr obrazu a zostawie tworzenie tylko miniatury można tak?

Tak się nie da. PHP ma dostęp tylko do plików znajdujących się na serwerze.
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.