- Home
- Categorie
- Coding e Sistemistica
- PHP
- Errore su Upload immagine da disco
-
Errore su Upload immagine da disco
Ciao a tutti. Non riesco a trovare l'errore sul seguente codice php che mi serve per fare l'upload di un'immagine in una cartella del server.
Il codice del form per l'upload è il seguente:
<form method="post" action="elabora_inserimento.php" enctype="multipart/form-data"> <center> <table border="0" cellspacing="5" cellpadding="5"> <tr> <td>File da caricare: <input type="file" name="nomefile"/></td> </tr> <tr> <td><input type="submit" name="invia" value="Invia Immagine"/><input type=reset value="Annulla"></td> </tr> </table>
La pagina per l'elaborazione del file invece è la seguente:
<?php require_once("config_immagini.php"); require_once("funzioni_immagini.php"); if (!isset($_FILES["nomefile"])) die("File non ricevuto\n"); $tmp_nome = $_FILES["nomefile"]["tmp_name"]; $tipo = $_FILES["nomefile"]["type"]; $nome = $_FILES["nomefile"]["name"]; if (!controllaTipo($tipo)) die("File di tipo sconosciuto\n"); if (move_uploaded_file($tmp_nome, DIR_IMMAGINI . "/" . $nome)) echo "<p>Inserimento immagine effettuato, torna all'<a href=\"indice.php\">indice</a></p>\n"; else echo "<p>Non sono riuscito a spostare il file, controlla i permessi sul server</p>\n"; ?>
L'ultimo pezzo di codice interessato è quello di configurazione dove sono specificati i dati quali formato e tipo di immagini ammisiibili:
<?php define(DIR_IMMAGINI, "immagini/cellnuovi"); $immagini_per_riga = 6; $formati_immagine = array(".jpg", ".gif", ".png"); $tipi_immagine = array("image/jpeg", "image/gif", "image/png"); ?>
Le 2 funzioni che sono presenti in un'altra pagina invece sono le seguenti:
function controllaFormato($nomefile) { global $formati_immagine; foreach ($formati_immagine as $formato) if (strrpos($nomefile, $formato)) return TRUE; return FALSE; // nessun formato trovato } function controllaTipo($tipo) { global $tipi_immagine; foreach ($tipi_immagine as $formato) if (strpos($tipo, $formato)) return TRUE; return FALSE; // nessun tipo trovato }
Il problema che riscontro è che quando provo a caricare un'immagine dal mio disco .gif mi segnala l'errore relativo al Gallery inserisciFile di tipo sconosciuto.
Qualcuno gentilmente può darmi qualche consiglio?
grazie mille a tutti
-
Puoi inserire esattamente l'errore che ti spunta?
-
Dopo aver caricato l'mmagine da disco e premuto il pulsante in via mi compare l'errore "File di tipo sconosciuto". Quindi l'errore penso sia sulla funzione controlla tipo o qualcosa del genere. Solo che non riesco a trovare l'errore. Se tolgo il controllo sul formato mi carica l'immagine senza problemi.
-
Prova a mettere degli echo dentro la funziona ControllaTipo per vedere se il giro lo fa correttamente!
-
Sinceramente non saprei come fare il controllo con gli echo sulla funzione controlla tipo.
Mi potresti dare qualche consiglio?
-
Allora. Ho cambiato un po' il codice. Lo posto qui sotto:
<?php $cartella = 'immagini/cellnuovi/'; $percorso = $_FILES['miofile']['tmp_name']; $nome = $_FILES['miofile']['name']; $tipo = $_FILES['miofile']['type']; if ($tipo == "image/gif" || $tipo == "image/jpeg" || $tipo == "image/png") { if (file_exists($cartella . $_FILES["miofile"]["name"])) { echo "File già esistente"; } else { if (move_uploaded_file($percorso, $cartella . $nome)) { echo "Upload eseguito con successo.<br>"; } else { echo "Ci sono problemi nell'upload."; } } } else { echo "Si accettano solo file .gif, .jpg e .png"; }
Il problema ora è che mi riconosce senza problemi immagini con estensione gif, ma mi da problemi con immagini di tipo jpg.
Qualche idea?
Grazie a tutti
-
Risolto il mio problema mettendo come estensioni riconosciute anche jpeg in questo modo:
$tipo == "image/gif" || $tipo == "image/pjpeg" || $tipo == "image/jpeg" || $tipo == "image/png"
Grazie lo stesso.