salve. io avrei questo problema.
Io carico delle foto dal server (che sono salvate sul server tramite una pagina di upload) di dimensioni anche alte, per esempio 2186x2112px. poi le visualizzo, tramite regole di css, di dimensioni massime 300x300px. Il problema è che quelle foto vengono solo visualizzate con quelle dimensioni, ma in realtà vengono trattate con le dimensioni originali, e quando ho parecchie foto di tali dimensioni la pagina html è pesantemente lenta (nel sfogliarla per esempio).
come posso fare? magari un resize lato server quando viene fatto l'upload (cosa che gli utenti possono fare)?
per ora lo script che ho per le immagini è questo :
Codice PHP:
//gestisco le foto server side
if(($_FILES['userfile1']['tmp_name']!="") or ($_FILES['userfile2']['tmp_name']!="")
or ($_FILES['userfile3']['tmp_name']!="") or ($_FILES['userfile4']['tmp_name']!="")) {
// controllo che le foto siano effettivamente foto
for($i=1; $i<=4; $i++) {
if ($_FILES['userfile'.$i]['tmp_name']!="") {
$path_parts=pathinfo($_FILES['userfile'.$i]['name']);
if(strtolower($path_parts['extension'])=='jpg') {
} elseif(strtolower($path_parts['extension'])=='jpeg') {
} elseif(strtolower($path_parts['extension'])=='gif') {
} elseif(strtolower($path_parts['extension'])=='png') {
} elseif(strtolower($path_parts['extension'])=='bmp') {
} else {
$wrong=1;
}
}
}
// controllo che le foto vadano bene. altrimenti annullo
if(isset($wrong)) {
$abort=1;
$messaggio="Errore - Formato delle foto non valido. Assicurati che il formato sia jpg, jpeg, gif, bmp, png";
} else {
// creo cartella photo per questo articolo
mkdir("./articles/photos/".$articleid);
// gestisco la/le foto indice i
$sql="";
for($i=1; $i<=4; $i++) {
if ($_FILES['userfile'.$i]['tmp_name']!="") {
// imposto parametri photo
$photoid=$articleid."-".$i;
$uploaddir="./articles/photos/".$articleid."/";
$userfile_tmp=$_FILES['userfile'.$i]['tmp_name'];
$userfile_name=$_FILES['userfile'.$i]['name'];
// lo rinomino (unicità file)
$userfile_name=$photoid."@".trim(str_replace(" ", "", $_FILES['userfile'.$i]['name']));
// copio la foto nella cartella nel server
$path_parts=pathinfo($_FILES['userfile'.$i]['name']);
$photoondb=$photoid.".".strtolower($path_parts['extension']);
move_uploaded_file($userfile_tmp, $uploaddir.$photoondb);
if($sql!="") $sql.=", ";
$sql.="('$articleid', '$photoondb')";
}
}
// inserisco riferimento articolo-photo nel database
if($sql!="") $insert=mysql_query("INSERT INTO articles_photos (articleid, photoid) VALUES $sql",$mydb);
}
}
//client side per inviarle
<div class="addarticletable2">
<input name="userfile1" type="file" value="CHOOSE">
<input type="hidden" value="1" name="photo1"></input>
<input name="userfile2" type="file" value="CHOOSE">
<input type="hidden" value="1" name="photo2"></input>
<input name="userfile3" type="file" value="CHOOSE">
<input type="hidden" value="1" name="photo3"></input>
<input name="userfile4" type="file" value="CHOOSE">
<input type="hidden" value="1" name="photo4"></input>
</div>
magari avete una soluzione. Grazie