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:
<FORM ACTION="add_foto.php" METHOD=POST enctype="multipart/form-data"> <input class=form9 type="file" name="obraz" size="67"><br>
<INPUT TYPE="hidden" NAME="data" size="20" value="<? print (Date("Y-m-d")); ?>">
<input type="hidden" name="PHPSESSID" value="<? echo $s_id;?>">
<input type="hidden" name="kategoria_form" value="<? echo $id_k;?>">
<input type="hidden" name="karet" value="<? echo $_GET[karet];?>">
<input type="reset" class="form11" value="Wyczyść"> <INPUT name="send" TYPE="submit" class="form11" value="Dodaj">
add_foto.php
<?
$s_id = session_id();//pobiera id sesji do zmiennej $kategoria_form = $_POST['kategoria_form'];
$album_form = $_POST['album_form'];
$karet = $_POST['karet'];
//laczenei z mysql
//pobieranie potrzebnych informacji na temat konfiguracji
$jakosc_miniatury_inf=$zapisz_cnf['jakosc_miniatury'];
$jakosc_zdjecia_inf=$zapisz_cnf['jakosc_zdjecia'];
$wysokosc_zdjecia_inf=$zapisz_cnf['wysokosc_zdjecia'];
$szerokosc_zdjecia_inf=$zapisz_cnf['szerokosc_zdjecia'];
$napis_foto=$zapisz_cnf['napis_foto'];//treść napisu na zdjęciu
$napis_kolor=$zapisz_cnf['napis_kolor'];//kolor napisu na zdjęciu
$napis_wielkosc=$zapisz_cnf['napis_wielkosc'];//wielkość napisu na zdjęciu
$napis_tlo=$zapisz_cnf['napis_tlo'];//tło napisu na zdjęciu
$napis_font=$zapisz_cnf['napis_font'];//czcionka napisu na zdjęciu
$wielkosc_pliku=$zapisz_cnf['wielkosc_pliku'];
}
$rozm = $_FILES['obraz']['size'];
if($rozm > $wielkosc_pliku) {echo 'Błąd';}
//ustala typ mime pliku i tworzy odpowiedni prefix dla funkcji GD
$typ_pliku = $_FILES['obraz']['type'];
switch($typ_pliku)
{
case 'image/jpeg':
$pref_gd = "jpeg";
break;
case 'image/png':
$pref_gd = "png";
break;
case 'image/pjpeg':
$pref_gd = "jpeg";
break;
}
//koniec ustala typ mime pliku i tworzy odpowiedni prefix dla funkcji GD
$nazwa1 = Date("His");//wykorzystanie daty do wygenerowania nowej nazwy dla pliku $nazwa2 = $_FILES['obraz']['name'];//pobranie nazwy pliku z tablicy
$nazwa_zmieniona = "$nazwa1$nazwa2";//połączenie daty z nazwą pliku
//zamienia polskie litery z języczkami aby nie znalazły się w nazwie fotki
$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
move_uploaded_file($_FILES['obraz']['tmp_name'],"/obrazy/".$nazwa_zmieniona);//wgrywa plik na serwer
chmod($file, 0755);
if (file_exists("/obrazy/".$nazwa_zmieniona)) { include ("create_min.php");} //tworzy
// tutaj juz nie wiem jak zrobic :( czy to musi być czy nie?
}
?>
create_min.php:
<?
//Tworzy miniaturę
$obrazek_minn = "$nazwa_zmieniona";
$max_width = 150;//default 150
$max_height = 113;//default 300
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if(($width <= $max_width) && ($height <= $max_height))
{
$tn_width = $width;
$tn_height = $height;
}
else if(($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height); $tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width); $tn_height = $max_height;
}
$func_plus_prefix_1 = "ImageCreateFrom".$pref_gd;
$func_plus_prefix_2 = "image".$pref_gd;
$src = @$func_plus_prefix_1($file);
$dst = @imagecreatetruecolor($tn_width, $tn_height);
@imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
//Header('Content-type: image/jpeg');
@$func_plus_prefix_2($dst, "/miniatury/".$obrazek_minn, $jakosc_miniatury_inf);
//koniec tworzenia miniatury
?>
i tabela conf
CREATE TABLE `conf` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`pokaz_admin` char(1) DEFAULT 'T',
`pokaz_ogalerii` char(1) DEFAULT '',
`nazwa_galerii` longtext,
`description` longtext,
`keywords` longtext,
`o_galerii` longtext,
`ksiega_poz` varchar(4) DEFAULT '15',
`ile_fotek` varchar(4) DEFAULT '16',
`ile_fotek_gl` varchar(4) DEFAULT '3',
`pokaz_licznik` char(1) DEFAULT 'T',
`pokaz_ksiega` char(1) DEFAULT 'T',
`pokaz_kontakt` char(1) DEFAULT NULL,
`pokaz_koment` char(1) DEFAULT 'T',
`blok_mysz` char(1) DEFAULT NULL,
`pokaz_ocene` char(1) DEFAULT 'T',
`pokaz_min_txt` char(1) DEFAULT 'T',
`miniatury_opisy` char(1) DEFAULT NULL,
`pokaz_news` char(1) DEFAULT NULL,
`lokation_news` char(1) DEFAULT 'L',
`index_robot` varchar(7) DEFAULT 'INDEX',
`run_gzip` char(1) DEFAULT '',
`users_zewn` char(1) DEFAULT NULL,
`option1` char(1) DEFAULT NULL,
`option2` char(1) DEFAULT NULL,
`option3` char(1) DEFAULT NULL,
`option4` char(1) DEFAULT NULL,
`haslo_wyb` char(1) DEFAULT NULL,
`haslo` varchar(200) DEFAULT NULL,
`haslo_inf` varchar(100) DEFAULT NULL,
`jakosc_miniatury` char(3) DEFAULT '97',
`jakosc_zdjecia` char(3) DEFAULT '75',
`wysokosc_zdjecia` varchar(5) DEFAULT '900',
`szerokosc_zdjecia` varchar(5) DEFAULT '700',
`wielkosc_pliku` varchar(10) DEFAULT '300000',
`motyw` varchar(50) DEFAULT '',
`uklad_strony` char(1) DEFAULT '',
`napis_foto` varchar(200) DEFAULT NULL,
`napis_kolor` varchar(200) DEFAULT 'FFFFFF',
`napis_wielkosc` varchar(4) DEFAULT '10',
`napis_tlo` varchar(100) DEFAULT '5A5A5A',
`napis_font` varchar(50) DEFAULT 'arial.ttf',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) 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
Ten post edytował Lejto 16.01.2008, 12:55:40