Problema Upload file con Internet Explorer

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Salve!

Propongo, gentilmente, di provare a risolvere questo problema...

Problema:

Ho creato un modulo che permette l’invio di immagini, quindi le immagini vengono gestite con php, MySql e le librerie GD2 per creare una galleria dinamica. Ora, il tutto funziona perfettamente su browser Firefox, Safari ecc. ma non su Internet Explorer(mi stampa il messaggio di errore)

Non riesco proprio a capire il problema(anche perché sono alle prime armi), ho cercato qualche suggerimento su internet ed alcuni utenti hanno il mio stesso problema, ma non è stata trovata alcuna soluzione.

Questo è il codice

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body bgcolor="#ff9999">
<center>
<br>
<br>
<br>
<br>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" >
Titolo:<br />
<input name="titolo" type="text" size="20"><br />
Autore:<br />
<input name="autore" type="text" size="20"><br />
e-mail:<br />
<input name="email" type="text" size="20"><br />
Descrizione:<br />
<textarea name="descrizione" cols="20" rows="4"></textarea>
<br />
Immagine:<br />
<input type="file" name="imagefile"><br />
<button type ="submit" name="submit">Invia</button>
<br /><br />
</form>
<?php
error_reporting(E_ALL);
if(isset($_POST['submit'])){
  // faccio un po' di inclusioni...
  @include 'config.php';
  @require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/jpg");

  // verifico che il formato del file sia tra quelli accettati
  if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['imagefile']['type']);
                $autore = @addslashes($_POST['autore']);
                $email = @addslashes($_POST['email']);

    // creo la miniatura
    @makeThumb($path_img,$path,$nome,$tipo);
  
    // aggiorno il database
    $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,Autore,Email) VALUES('$titolo','$descrizione','$nome','$tipo','$autore','$email')";
    $res = @mysql_query($query) or die (mysql_error());
    @mysql_close($cn);

    // Stampo a video un po' di informazioni
    echo "Nome: ".$_FILES['imagefile']['name']."<br />";
                echo "Autore: ".$autore."<br />";
    echo "Dimensione: ".$_FILES['imagefile']['size']."<br />";
    echo "Tipo: ".$_FILES['imagefile']['type']."<br />";
    echo "Copia eseguita con successo.";
  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "Errore";
  }
}
?>

</center>
</body>
</html>
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Ciao e grazie per avermi risposto.

Se ci fai caso il codice è esattamente lo stesso, infatti l'ho preso proprio da li per creare la mia galleria.

Il punto è che non funziona su Internet Explorer.

Forse a te funziona...
Se vuoi prova
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
scosa di nuovo, ho guardato la gallery, non si vedono le tumb ma le foto grandi si.
non è l'up, verifica lo script che crea le tumb
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Grazie Gianni,

(quasi quasi la foto la lascio) :)

..quindi è un mio problema (chissa cosa potrebbe essere?).

Un' ultima domanda:

riesci a visualizzare le immagini (thumbnails) ?

Io vedo le icone con una x rossa sopra (come se non riesce a caricarle)


PS (ho letto dopo).

No il fatto delle thumb proprio non lo capisco...
Ho provato in tutti i modi ma niente
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
era proprio quello che dicevo: le tub x rossa, le grandi si vedono, quindi l'errore è nello script che crea le tumb e/o le carica
:dormo::byebye:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
buongiorno
non ti carica le tumb pechè:

Codice:
<a href="visual.php?id=12"><img src="http://www.urbanmurales.eu/gallery/[SIZE="5"]tb_[/SIZE]" border="0"></a>

non c'è il nome ma solo tb_
per vedere dove è il probabile errorre
1. guarda nella cartella se esistono le tb_XYZ.jpg, se non ci sono vuol dire che non le cre
2. guarda nella tabella del db se ci sono i nomi, se non ci sono dipende da l'insert con qualche errore
:byebye:
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Buongiorno.

Potrebbe dipendere dalle librerie GD2?

Forse sul mio spazio web non sono installate...
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Grazie mille!!!

Avevi proprio ragione.

E' un banale problema con il database.

Ora modifico e ti faccio sapere!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
potrebbe
es.
su a*ba in ambiente windows le librerie non sono installate e quindi resize non funzia
in ambiente linux si, e quindi funzia

hai provato in locale?
se in locale funzia e remoto no con moltissima prob le gd non sono attive
ho avuto, tempo fa, lo stesso problema e mi sono trasferito su linix a*ba
:mexican:
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Niente...

Molto probabilmente, quindi, il problema sta proprio nell' installazione delle librerie GD2. Oggi chiamo l'assistenza.

Grazie e alla prossima!:byebye:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Niente...

Molto probabilmente, quindi, il problema sta proprio nell' installazione delle librerie GD2. Oggi chiamo l'assistenza.

Grazie e alla prossima!:byebye:

per controllare ti potrebbe bastare l'upload di un file con questo codice:
PHP:
<?php
phpinfo();
?>
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Ciao Eliox,

Grazie della delucidazione:fonzie:

ho testato tramite la funzione phpinfo(); e le librerie sono abilitate, allora molto gentilmente Eliox (ribadisco che sono alle prime armi, questi script li ho presi da internet) ti posto il codice e vediamo se faccio qualche errore:

Allora i file sono: config.php, gallery.php(che è quello che dovrebbe permettere la visualizzazione delle Thumb)
, form.php e function.php
config.php
PHP:
<?php
// Connessione al DB
$host = 'localhost';
$user = '';
$pass = '';
$data = 'nomemiodatabase';
$cn = @mysql_connect($host,$user,$pass) or die (mysql_error());
$sl = @mysql_select_db($data) or die (mysql_error());

// Questa e' la cartella dove salvo le immagini
// e quindi e' anche quella dove poi vado a recuperare le img per i Thumb

$path_img = ''; //Si trova nella stessa cartella di tutti gli altri file php che mi servono per gestire la galleria, dove c'è ovviamente anche gallery.php
?>

form.php

PHP:
<?php

if(isset($_POST['submit'])){
  // faccio un po' di inclusioni...
  @include 'config.php';
  @require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/jpg","image/pjpeg","image/pjpg");

  // verifico che il formato del file sia tra quelli accettati
  if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['imagefile']['type']);
	$autore = @addslashes($_POST['autore']);
	$email = @addslashes($_POST['email']);

    // creo la miniatura
    @makeThumb($path_img,$path,$nome,$tipo);
  
    // aggiorno il database
    $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,Autore,Email) VALUES('$titolo','$descrizione','$nome','$tipo','$autore','$email')";
    $res = @mysql_query($query) or die (mysql_error());
    @mysql_close($cn);

    // Stampo a video un po' di informazioni
    echo "Nome: ".$_FILES['imagefile']['name']."<br />"; 
	echo "Autore: ".$autore."<br />"; 
    echo "Dimensione: ".$_FILES['imagefile']['size']."<br />"; 
    echo "Tipo: ".$_FILES['imagefile']['type']."<br />"; 
    echo "Inserimento effettuato con successo!"; 
  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
    echo "Errore";
  }
} 
?>

function.php
PHP:
function makeThumb($dir,$pic,$n,$t){
  @list($width, $height, $type, $attr) = @getimagesize($pic);
  $max_w = 100;
  $max_h = 100;
  $ratio = @min($max_w/$width,$max_h/$height);

  // Verifico che l'immagine originale sia più grande delle dimensioni massime 100*100pxl
  if ($ratio < 1){
    // Individuo le nuove dimensioni da assegnare all'immagine
    $w = @floor($ratio*$width);
    $h = @floor($ratio*$height);

    // creo una nuova immagine con le dimensioni appena calcolate
    $thumb = @imagecreatetruecolor($w,$h);
    if ($t == 'image/jpeg'){$temp = @imagecreatefromjpeg($pic);}
    elseif ($t == 'image/gif'){$temp = @imagecreatefromgif($pic);}
    elseif ($t == 'image/png'){$temp = @imagecreatefrompng($pic);}

    // ridimensiono l'originale e salvo nella cartella di destinazione
    @imagecopyresized($thumb,$temp,0,0,0,0,$w,$h,$width,$height);
    if ($t == 'image/jpeg'){@imagejpeg($thumb,"$dir/tb_".$n, 75);}
    elseif ($t == 'image/gif'){@imagegif($thumb,"$dir/tb_".$n, 75);}
    elseif ($t == 'image/png'){@imagepng($thumb,"$dir/tb_".$n, 75);}
  }
}
?>

Ecco il file incriminato gallery.php

PHP:
.
.
$strsql = "select * from images order by Id asc 
$query = mysql_query($strsql);  
.
.
while ([email protected]_fetch_array($query)){
  
    $righe++;
    $id = $f['Id'];
    $titolo = stripslashes($f['Titolo']);
    $nome = stripslashes($f['Nome']); 
    $autore = stripslashes($f['Autore']);
    $descrizione = stripslashes($f['Descrizione']);    
    // stampo la cella contenente l'immagine 	
    echo "<td width=\"33%\">\n";	
    echo "<b>Titolo:</b>" . $titolo . "<br />";
    echo "<b>Autore:</b> " . $autore . "<br />"; 
    echo "<a href=\"visual.php?id=" . $id . "\">";
    echo "<img src=\"" . $path_img  . "tb_" . $nome . "\" border=\"0\"></a>";
    echo "<br /><i>Descrizione:</i>" . $descrizione;
.
.
.

Ora, stampa tutto (titolo, autore, descrizione)tranne l'immagine che compare con la classica x rossa(oppure una pagine spezzata), mentre ,però, se clicco sulla thumb(appunto quella con la x rossa sopra) apre in maniera corretta un'altra pagina con la foto corrispondente alle dimensioni reali

Se vuoi puoi provare a vedere


PS. Dimenticavo...ovviamente in gallery.php ho incluso il file config.php e function.php
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
a parte quello che probilmente è un errore di trascrizione

PHP:
$strsql = "select * from images order by Id asc 
$query = mysql_query($strsql);
da correggere

PHP:
$strsql = "select * from images order by Id asc";
$query = mysql_query($strsql);

ribadisco che se le gd sono attive (locale e remoto) l'errore è nello script

devi fare il debag inserendo (via via avanzando) degli echo che ti visualizzino le varie variabili
es
hai provato echo $nome?
$nome è vuoto o ha il nome della foto?

prova a commentare e scrivere



PHP:
    echo "<a href=\"visual.php?id=" . $id . "\">";
    //echo "<img src=\"" . $path_img  . "tb_" . $nome . "\" border=\"0\"></a>";
echo $path_img  . "tb_" . $nome;
    echo "<br /><i>Descrizione:</i>" . $descrizione;

essendo path vuoto dovrebbe stamparti

tb_pincopallo.jpg
:byebye:
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
C'è un errore anche qui:
PHP:
echo "<td width="33%\">\n";
dovrebbe essere:
PHP:
echo "<td width=\"33%\">\n";
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Ciao Eliox,

Si, il punto e virgola è un errore di distrazione (copia e incolla, scusami).

Ho notato che, aprendo le proprietà(tasto destro sulla casella dell'immagine con la x rossa) della Thumb, mi dice che carica file di nome tb_esempio.jpg mentre nella cartella dove sono salvate le immagini ci sono file del tipo esempio.jpg(che è il file nelle sue dimensioni originali) e non tb_esempio.jpg(che dovrebbe essere il file ridimensionato, appunto tb_, che non salva).

Quindi sicuramente c'è qualche problema nello script; ora provo a correggere la parte che mi hai suggerito e ti faccio sapere...

Devo ancora installare php in locale. Per il momento non posso fare prove(appunto, in locale).
Grazie ancora :fonzie:
(in eventuale risposta ti scriverò entro domani sera al massimo tra due giorni, stanno modificando la banda e non posso connettermi con
regolarità per il momento)
:byebye:
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
Allora...

Ho provato tutto in locale...secondo me il problema sta nella variabile che contiene il percorso dove viene salvata l'immagine.

Percorso logico:

'http://localhost/gallery/files'

In "gallery" salvo tutti i file .php (form, function ecc)

e quindi in config.php scrivo

PHP:
<?php
//mi connetto al database
$path_img = 'files/';
?>

ora, salva tutto alla perfezione nel database, ma non salva ne l'immagine ne la thumbnails nella cartella files.(ti assicuro che ho tutti i permessi di scrittura e lettura in locale)

(forse lo slash va dietro, es. '/files' , visto che la cartella "files" si trova nella cartella "gallery" dove, ripeto, sono contenuti tutti i file php?...dimenticavo: ho provato a inserire anche l'intero percorso, e cioè, $path_img = 'http://localhost/gallery/files'; nada)


:confused:
 

frasavio

Nuovo Utente
22 Lug 2008
18
0
0
scusate molto...

Il problema sta proprio nei permessi di scrittura e lettura per le cartelle in locale.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
C [PHP] Problema upload file (multiplo) PHP 1
R Problema upload file PHP 1
francesco7 [Problema] esecuzione script Upload file in php PHP 0
F Problema con upload di file PHP 1
B problema upload file PHP 3
C Problema nell'upload di un file PHP 4
P Problema upload file PHP 2
D Problema nome file su upload Classic ASP 5
U Problema script upload file... :'( PHP 7
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
N [PHP] Problema upload immagini wordpress PHP 2
Rikk73 Problema upload immagini PHP 4
R Problema upload PHP 1
P Problema con lettura filesystem del client da server! Upload multiplo foto. PHP 5
F Problema con upload di immagini che superano 2MB PHP 14
A Problema con Upload immagini PHP 9
L classe upload [Problema cartella] PHP 1
B Problema upload delle foto PHP 1
L problema upload: Strict Standards: Only PHP 2
B Problema upload application/x-zip-compressed diventa erroneamente application/octet-stream PHP 0
A problema con upload immagini multiple PHP 0
L problema ftp upload su host windows PHP 9
N problema script php mysql multi upload immagini PHP 31
N Problema upload iis7 Classic ASP 0
helpdesk Problema Upload non ridimensiona l'immagine PHP 4
A upload immagini problema PHP 3
R problema upload PHP 9
G Problema con upload immagini e IE7 PHP 6
V Problema con Pure Asp Upload Classic ASP 4
Y problema nell'upload di un'immagine PHP 7
S Problema upload immagine Classic ASP 4
SolidSnake4 problema upload PHP 1
N Problema upload immagini! HELP! PHP 0
S Problema Dominio su Tiscali e upload con ADSL ALICE Domini 1
C problema upload immagini grandi con 4images Programmazione 0
D problema con upload [Era: info] PHP 13
M Problema con l'upload PHP 0
V Problema Upload PHP 6
Z Problema con il mio tp-l i nk Reti LAN e Wireless 0
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1

Discussioni simili