Môže mi prosím vás niekto vysvetliť nasledovnú vec:
Mám script ktorý uploduje a vytvára aj miniatúry. No a problém je v tom, že mi raz sa obrázok aj s miniatúrou nahrá a inokedy sa zasekne pri uložení miniatúry. Je to čudné preto, že ak mám dve fotky vo formáte jpg, tak raz sa upload podarí a inokedy sa nahrá len veľký obrázok a script nevytvorí miniatúru. Proste raz to funguje a raz nie. Pritom formát je rovnaký. Problém je s funkciou imagejpeg().
Tu je aj kód(chybu som označil):
Kód: Vybrať všetko
if(isset($_FILES['obrazok']) && is_uploaded_file($_FILES['obrazok']['tmp_name'])){
$_SESSION['mesageAdmin'] = 'Chyba: ';
$max_velkost_obrazku = 150000;
$adresar = '../../pictures/torty/'; // Cielovy odresar prenosu
$adresarB = '../../pictures/tortyB/';
$obrazok = $_FILES['obrazok'];
switch ( $obrazok['error'] ){ // Overenie vsetkych moznych chyb
case UPLOAD_ERR_INI_SIZE: // veľkosť súboru prekročila limit nastavený v súbore php.ini
$_SESSION['mesageAdmin'].= 'Velkost obrázku prekročila povolený limit '.$max_velkost_obrazku.'bajtov. ';
break;
case UPLOAD_ERR_PARTIAL: // počas načítania súboru došlo ku chybe, bola načítaná len časť
$_SESSION['mesageAdmin'].= 'Pri odoslaní súboru došlo k chybe. Skúste to prosím znovu. ';
break;
case UPLOAD_ERR_NO_FILE: // nepodarilo sa na server odoslať žiadny súbor
$_SESSION['mesageAdmin'].= 'Nebol vybratý žiadny súbor, vyberte ho. ';
break;
case UPLOAD_ERR_OK:
if ( $obrazok['size'] > $max_velkost_obrazku ){
$_SESSION['mesageAdmin'].= 'Obrázok je príliš veľký. Nemôže mať viac než 150Kb. ';
}
break;
default:
$_SESSION['mesageAdmin'].= 'Došlo ke neznámej chybe. Skúste to znovu. ';
}
if ( !in_array ( $obrazok['type'], array ( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/gif' ) ) ){ // musime overit ci su obrazky PNG, GIF alebo JPEG
$_SESSION['mesageAdmin'].='Bol zistený nepovolený formát. Povolené sú formáty jpg, png a gif. ';
}
if($_SESSION['mesageAdmin']!='Chyba: '){
header('location:http://localhost/cukrarengianka.sk/backend/galeriaAdmin/uploadGaleria.php');
exit;
}
$time=time(); // jedinecny retazec
$nameExpld=explode('.', $obrazok['name']);
$newName=$nameExpld[0].'_'.$time.'.jpg';
$newNameB='B'.$nameExpld[0].'_'.$time.'.jpg';
$is_jpg=true; // ak je povodny obrazok jpg tak sa zbytocne nekonvertuje(len miniatura), lebo by stratil na kvalite, ale sa priamo uklada
$gd_obrazok=convert_to_gd($obrazok['tmp_name']); // nativny PHP format, je vyzadovany mnohymi GD funkciami
if($is_jpg){
if( !@move_uploaded_file( $obrazok['tmp_name'], $adresarB.$newNameB) ){
$_SESSION['mesageAdmin'].='Súbor sa nepodarilo nahrať na sever 1.';
myLog('error: Nepodarilo sa nahrat fotku na server, uz v prvom kroku.');
header('location:http://localhost/cukrarengianka.sk/backend/galeriaAdmin/uploadGaleria.php');
exit;
}
}
else{ if( !imagejpeg( $gd_obrazok, $adresarB.$newNameB , 90) ){
$_SESSION['mesageAdmin'].='Súbor sa nepodarilo nahrať na sever 1.';
myLog('error: Nepodarilo sa nahrat fotku na server, uz v prvom kroku.');
header('location:http://localhost/cukrarengianka.sk/backend/galeriaAdmin/uploadGaleria.php');
exit;
}
}
$org_sirka = imagesx($gd_obrazok);
$org_vyska = imagesy($gd_obrazok);
if($_POST['vyska']=='' or $_POST['vyska']<80){
$miniVyska=150;
}
else{ $miniVyska=$_POST['vyska'];
}
$pomer=$org_vyska/$miniVyska;
$miniSirka=$org_sirka/$pomer;
$miniObrazok = imagecreatetruecolor($miniSirka, $miniVyska); // toto tu musi byt vid. php.net
imagecopyresampled($miniObrazok, $gd_obrazok, 0, 0, 0, 0, $miniSirka, $miniVyska, $org_sirka, $org_vyska);
/*tu je chyba*/ if( !imagejpeg( $miniObrazok, $adresar.$newName , 90) ){
$_SESSION['mesageAdmin'].='Súbor sa nepodarilo nahrať na sever 2.';
myLog('error: Nepodarilo sa nahrat fotku na server, v druhom kroku.');
header('location:http://localhost/cukrarengianka.sk/backend/galeriaAdmin/uploadGaleria.php');
exit;
}
$query='insert into fotos (src) values ("'.$newName.'")';
if(!@mysql_query($query)){
$_SESSION['mesageAdmin'].='Súbor sa nepodarilo nahrať do databázy.';
myLog('error: Nepodarilo sa nahrat fotku do databázy. Fotka je naharatá iba v oboch adresároch.');
header('location:http://localhost/cukrarengianka.sk/backend/galeriaAdmin/uploadGaleria.php');
exit;
}
$_SESSION['mesageAdmin']='Hurá, obrázok bol uložený na server.';
}Tak so na to prišiel. Problém bol v tom, že som testoval príponu a nerátal som s veľkými písmenami