-
Librerie GD
ciao,
ho realizzato un sistema di upload di immagini con ridimensionamento e salvataggio e creazione di una thumbnail. il sistema funziona perfettamente su un altro sito mi sono, però, accorto che su altervista il sistema di ridmensionamento non funziona cioè non salva l'immagine.
Il ridimensionatore è il seguente
http://www.codicefacile.it/smartimage/
dopo 4 giorni trascorsi per capire il problema e senza venirne a capo ho pensato che il problema fosse delle librerie GD infatti questo ridimensionatore richiede:
PHP >=4.0.1 or PHP >=5
GD libraries 1 or GD2
volevo sapere se queste sono attive su altervista, se sono attivabili o non ci sono proprio. nel caso peggiore qualcuno mi può suggerire una alternativa per ridimensionare le immagini?
grazie.
-
Basta fare un phpinfo() per scoprire che attualmente Altervista usa GD 2.2.1 e PHP 5.2 (c'è anche il 5.3).
Sicuro di salvare in una posizione all'interno del tuo spazio web?
-
ciao,
grazie per la risposta..questo elimina il dubbio delle librerie GD.
Si imposto come salvataggio una dir del mio spazio..incollo tutto il codice magari può essere utile a capire il problema.
Codice PHP:
<?
include 'config_ph.php'; //inclusioni OK
require 'function.php';
?>
<form method="post" action="<?php echo $_SERVER['../../PHP_SELF']; ?>" enctype="multipart/form-data">
<p>Carica le foto con le seguenti caselle: una foto per ogni casella!</p>
</div>
<br />
<p>
<input type="file" name="file[]"><br />
<input type="file" name="file[]"><br />
<input type="file" name="file[]"><br />
<input type="file" name="file[]"><br />
<input type="file" name="file[]"><br />
<input type="submit" name="Submit" value="Submit">
</p>
<br /><br />
<?php
if(isset($_POST['Submit'])) {
// Creo una array con i formati accettati
$tipi_consentiti = array("image/gif","image/jpeg","image/jpg","image/pjpeg","image/png");
// Devo ciclare sui vari file e fargli fare il processo
for($i=0;$i<count ($_FILES['file']['name']);$i++) {
if(@$_FILES['file']['name'][$i] != "") {
// verifico che il formato del file sia tra quelli accettati
if (in_array($_FILES['file']['type'][$i], $tipi_consentiti)){
$path_tmp="tmp";
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES['file']['tmp_name'][$i];
$name = $_FILES["file"]["name"][$i];
move_uploaded_file($tmp_name, "$path_tmp/$name"); // è OK!!!!!!
}
//Fin QUI OK
// recupero i dati dal form
$nome = @addslashes($_FILES['file']['name'][$i]);
$path = $path_img . stripslashes($nome);
$tipo = @addslashes($_FILES['file']['type'][$i]);
// *************************************************
// Sto usando il ridimensionatore smart class per ridimensionare l'immagine originale
// dopo salvo in via definitiva l'immagine ridimensionata e cancello quella temporanea
// *************************************************
$directori="tmp";
$nomedelfile=$_FILES['file']['name'][$i];
echo "nome file: $nomedelfile <br>";
echo "dir * nomefile: $directori * $nomedelfile <br>";
include "../include/SmartImage.class.php";
// Settings
$src=$nomedelfile;
echo "src: $src <br>";
$destination = "reserved/images/";
echo "destinazione: $destination <br>";
// Start!
$img = new SmartImage($src);
$img->resize(600, 400);
$destinazione=$destination.$nomedelfile;
echo "*destinazione*: $destinazione <br>";
$img->saveImage("$destinazione", 60);
$img->close();
// **************************** FINE smartclass ***************************
// creo la miniatura
@makeThumb($path_img, $immagine_da_mostrare, $nome, $tipo, $caricamento);
// aggiorno il database
$query = "INSERT INTO images_gallery (Titolo, Album, Nome, Tipo, Datatempo_upload, visibile) VALUES ('$nome', 'foto', '$nome', 'foto', NOW(), 'si')";
$res = @mysql_query($query) or die (mysql_error());
// Stampo a video un po' di informazioni
echo "Nome: ".$_FILES['file']['name'][$i]."<br />";
echo "Dimensione: ".$_FILES['file']['size'][$i]." byte <br />";
echo "Tipo: ".$_FILES['file']['type'][$i]."<br />";
echo "Copia eseguita con successo.<br /><br />";
// Cancello il file dalla cartella temporanea
// unlink("$directori/".$_FILES['file']['name'][$i]);
}else{
// stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
echo "Impossibile eseguire l'upload. Tipo di file non consentito! <br>";
echo "nome file: ". $_FILES['file']['name'][$i] ." <br>";
} // chiudo l'if di in array
} // chiudo l'if per verificare di prend solo i nomifile pieni
} // Chiudo il cliclo for
} // Chiudo l'if se il campo dell'album è selezionato
?>
</form>
spero questo posa aiutare a capire il problema.
grazie.
ciao.
-
Mi sembra di capire che l'immagine caricata la salvi nella cartella tmp/, ma poi alla funzione gli passi solo il nome del file senza percorso. Non è un errore?
-
ciao,
avevi ragione non passavo alla classe anche il percorso ma solo il nome del file.
ora funziona.
Non mi funzionava la function per creare la miniatura ed era un problema di percorso! ora tutto ok!
grazie per la dritta!