- Home
- Categorie
- Coding e Sistemistica
- PHP
- Inserire URL immagine in un form e poi controllarne l'autenticità
-
Hai due possiilità:
o utilizzi il tipo MIME:
[php]<?php
$array = array("image/jpeg","image/gif","image/png");//Array con i tipi MIME
if(in_array($_FILES['file']['type'],$array)){//Controlla se il tipo è presente nell'array
echo "Ok";//true
}
else
{
echo "formato non supportato";//false
}
?>[/php]Oppure:
[php]<?php
$array = array("gif","jpg","png","bmp");
$ext_file = explode("." , $_FILES['file']['name']);//divide la stringa in base al punto(es $name ="img.mia.png" con explode $name[0] = "img" $name[1] = "mia" $name[2] = "png"
$count_ext_files = count($ext_file)-1;//conta quante stringhe ci sono adesso meno l'ultima(a causa dello zero)
$ext = $ext_file[$count_ext_files];//eccoci restituita l'estensione
if(in_array($ext,$array)){//Controlla se il tipo è presente nell'array
echo "Ok";//true
}
else
{
echo "formato non supportato";//false
}
?>[/php]
-
Sarò io che non mi sono fatto capire bene, io volevo far sì che l'URL venga controllato e assicurato che finisca in un formato immagine, oppure restituisce un errore. Non è un Upload.
EDIT: Forse ho detto la scemenza della 10 di sera, non sarà che il tuo secondo esempio controlli la parte dopo il "."? Se fosse così, non deve controllare un file, ma la fine di un URL...
-
Se l'utente inserisce un URL in un campo input text (o in una textarea), puoi comunque utilizzare parte del codice suggerito da ilnetsurfer (quella con l'array delle estensioni).
Tieni comunque presente che l'utente potrebbe voler inserire un URL verso una risorsa dinamica (es. example.com/image?id=1) ed in quel caso il metodo non funzionerebbe.
-
Quindi è consigliabile inserire un form di Upload?
-
Dipende dal fine della tua applicazione. Solitamente questa funzione viene implementata in vari modi (URL, upload e scelta da una lista predefinita di immagini).
-
É un piccolo progetto ancora, agli utenti non costerà niente salvarsi l'immagine nel PC e caricarla . Magari ora vedo se riesco a far funzionare quel vecchio script di upload. Thanks.
-
Per l'upload puoi provare con il codice del manuale ufficiale. Se vuoi comunque usare l'URL, prova con questo codice:
[php]<?php
$url = 'inserisci qui il tuo URL';
$array = array("gif", "jpg", "png", "bmp");
$ext = substr($url, strrpos($url, '.') + 1);
if (in_array($ext, $array)) {
echo "Ok";
} else {
echo "formato non supportato";
}
?> [/php]
-
e questo cerca solo "in fondo" all'URL per il formato, no?
-
Esatto. Se vuoi una funzione più accurata puoi farla applicare alla sola componente path restituita dalla funzione parse_url()
-
blblblblblbl, non dico altro.
Grazie della dritta e di tutto!