Ciao ragazzi,
ho appena pubblicato un sito sull'host di Aruba (purtroppo) ed ho un grosso problema con le GD library (o almeno credo).
riporto il seguente errore:
Warning: imagecreatefromjpeg(/tmp/phpashE8x/) [function.imagecreatefromjpeg]: failed to open stream: Not a directory in /web/htdocs/www.rubamatic.it/home/test/admin/up_imgs.php on line 110
dove (/tmp/phpashE8x/) è un percorso temporaneo che cambia ogni qual volta avvio lo script.
Sostanzialmente cerco di fare il resize al volo di una immagini che nella pagina precedente ho "postato" tramite form.
Lo script in locale funziona perfettamente e l'ho utilizzato in varie occasioni.
Ve lo riporto per chiarezza,
questo è il form per l'invio del file e dei dati per poi popolare il database:
Codice PHP:
print "
<div class=\"strumenti\">Aggiungi IMMAGINE al lavoro
<span class=\"coloreinfo\">$nome</span>
<div style=\"text-align:right; float:right;\">
<a href=\"javascript: history.back();\">
<img src=\"../Imgs/x.gif\" border=\"0\" />
</a>
</div>
</div>
<form enctype=\"multipart/form-data\" method=\"post\" action=\"up_imgs.php\">
1. Cliccla su \"sfoglia\" per cercare il file sul tuo Hard disk</p>
<input type=\"hidden\" name=\"id\" value=\"$id\"/>
<input type=\"hidden\" name=\"nome\" value=\"$nome\"/>
<input type=\"file\" name=\"immagine\" />
2. Scrivi un commento per il file IMMAGINE in italiano e in inglese</p>
<textarea name=\"didascalia\" cols=\"70\" rows=\"5\">ITALIANO</textarea>
<textarea name=\"didaeng\" cols=\"70\" rows=\"5\">INGLESE</textarea>
3.Clicca su invia per procedere con l'upload del file. <input type=\"submit\" value=\"Invia\"></p>
</form>";
questo invece è lo script con il resize:
Codice PHP:
include 'connessione.php';
################################# VERIFICO CHE SIA STATO SELEZIONATO UN LAVORO TRAMITE ID
if (isset($_POST['id'])){
########################### RECUPERO LE INFORMAZIONI SUL LAVORO
$id = $_POST['id'];
$descrimg = $_POST['didascalia'];
$descring = $_POST['didaeng'];
$nome = $_POST["nome"];
#################################################### //VARIABILI IMPOSTABILI DALL'UTENTE
$immagine_name = $_FILES ['immagine']['name'];
$immagine_size = $_FILES ['immagine']['size'];
$immagine_type = $_FILES ['immagine']['type'];
$immagine_tmp = $_FILES ['immagine']['tmp_name'];
$uppath = "../allegati/img/works/$id"; //PATH DOVE VERRANNO UPLOADDATI LE IMMAGINI
$dimlim = "si"; //LIMITE DI DIMENSIONE [si o no]
$formatolim = "si"; //LIMITE DI FORMATO [si o no]
$size = "900000"; //LIMITE DI DIMESIONE
$larg = 800 ; //LIMITE LARGHEZZA
//LIMITE ALTEZZA
//Tutti i tipi di imagini
$tipo1 = "image/pjpeg"; //Jpeg type 1
$tipo2 = "image/jpeg"; //Jpeg type 2
$tipo3 = "image/gif"; //Gif type
$tipo4 = "image/png"; //Png type
$tipo5 = "image/bmp"; //Bmp Type
$log = "minchiazza";
//INIZIO UPLOAD
//CONTROLLA SE LA STRINGA E' VUOTA
if ($immagine_name == "") {
$log = "NESSUN FILE SELEZIONATO PER L'UPLOAD
";
}
if ($immagine_name != "") {
//
//CONTROLLA SE IL FILE E' GIA' ESISTENTE
if (file_exists("$uppath/$immagine_name")) {
$log = "L'IMMAGINE E' GIA' PRESENTE
";
} else {
//
//
//CONTROLLA LA DIMEZIONE DEL FILE
$errore=0;
if ($dimlim == "si") {
if ($immagine_size > $size){
$errore=1;
$log = "file troppo peasante, deve essere minore di $size byte
";
}
}
//CONTROLLA IL FORMATO DELL'IMMAGINE
if ($formatolim == "si"){
list($width, $height) = @getimagesize($immagine_tmp);
//CALCOLO LA NUOVA ALTEZZA
$alte = ($larg * $height) / $width;
}
if ($errore==0){
//CONTROLLA SE IL FILE E' UNA IMMAGINE
if (($immagine_type == $tipo1) or ($immagine_type == $tipo2) or ($immagine_type == $tipo3) or ($immagine_type == $tipo4) or ($immagine_type == $tipo5))
{
//@copy($immagine, "$uppath/$immagine_name") or $log .= "Impossibile copiare l'immagine sul server<br
$nomeimage = stripslashes ($immagine_name); //nome dell'immagine o eventuale varibile da cui prendere il nome dell'immagine da cui si vuol fare la preview ;
$cartella = "$uppath/$immagine_name";
#///////////////////////////////creazione preview con GD library
$new_width = $larg ; //Larghezza immagine ridimensionata
$new_height = $alte ; //Altezza immagine ridimensionata
$compression =100; //Compressione dell'immagine jpg
$source_path = "$immagine_tmp/"; //Diretory dove si trova il file di cui volgiamo fare la preview
$destination_path = "$uppath/" ; //diretory dove vogliamo salvare l'immagine di preview
$destination_pathT = "$uppath/thumb/" ;
$thumbpath = "$uppath/thumb/$immagine_name";
#////////////////////////// PARAMETRI PER LA THUMBNAIL
$T_height = 342;
$T_width = ($T_height * $width) / $height;
global $source_path;
global $destination_path;
global $destination_pathT;
global $destination_pathG;
global $new_width;
global $new_height;
global $T_width;
global $T_height;
///////////////////////////////////////////////////////////////////////////////////////////////////////// CREAZIONE FULL SIZE
$destimg = imagecreatetruecolor($new_width,$new_height) or die("Impossibile creare il file, c'è;¨ un problema nel salvataggio
<a href=\"javascript: history.back();\">TORNA</a>");
$srcimg = imagecreatefromjpeg($source_path) or die("Problemi nell'aprire l'immagine
<a href=\"javascript: history.back();\">TORNA</a>");
imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento
<a href=\"javascript: history.back();\">TORNA</a>");
imagejpeg($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio
<a href=\"javascript: history.back();\">TORNA</a>");
////////////////////////////////////////////////////////////////////////////////////////////////////////// CREAZIONE THUMBNAIL
$destimgT= imagecreatetruecolor($T_width, $T_height) or die("Impossibile creare una miniatura per il file selezionato
<a href=\"javascript: history.back();\">TORNA</a>");
imagecopyresized($destimgT,$srcimg,0,0,0,0,$T_width,$T_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento
<a href=\"javascript: history.back();\">TORNA</a>");
imagejpeg($destimgT,$destination_pathT.$nomeimage,$compression) or die("Problemi nel salvataggio
<a href=\"javascript: history.back();\">TORNA</a>");
if (file_exists("$uppath/$nomeimage")){
//INSERISCE I DATI DELL'IMMAGINE NEL DATABASE
mysql_query ("INSERT INTO `img` ( `id` , `path` , `tpath` , `work`, `descrizione` , `description` ) VALUES ('', '$cartella' , '$thumbpath' , '$id' , '$descrimg' , '$descring');") or die (mysql_error());
$log = "IMMAGINE CARICATA
";
}
else { print "non ce l'ho fatta!";}
}
else
{
$log = "Il file scelto non è¨ una immagine [$tipo2, $tipo3, $tipo4 o $tipo5]
";
}
}
}
}
echo "
$log
<br/ >
";
if ($log!="IMMAGINE CARICATA
"){
echo "
<a href=\"addfile.php?id=$id&t=immagini&nome=$nome\">Seleziona un'altra immagine</a>
<a href=\"allegati.php?id=$id&t=immagini&nome=$nome\">Visualizza tutte</a>";
} else {
unlink($immagine_tmp);
echo "
<a href=\"addfile.php?id=$id&t=immagini&nome=$nome\">Aggiungi un'altra immagine</a>
<a href=\"allegati.php?id=$id&t=immagini&nome=$nome\">Visualizza tutte</a>";
}
} else {
echo "
<a href=\"javascript: history.back();\">Devi selezionare un file da Caricare</a>
";
}
?>
HA SEMPRE FUNZIONATO! In locale e su qualunque server l'abbia messo?
Avete qualche idea?