Sto usando qualche file IO
e voglio sapere se c'è un metodo per controllare se un file è un'immagine?verificare se un file è un file di immagine
risposta
Questo funziona abbastanza bene per me. Spero di poter aiutare
import javax.activation.MimetypesFileTypeMap;
import java.io.File;
class Untitled {
public static void main(String[] args) {
String filepath = "/the/file/path/image.jpg";
File f = new File(filepath);
String mimetype= new MimetypesFileTypeMap().getContentType(f);
String type = mimetype.split("/")[0];
if(type.equals("image"))
System.out.println("It's an image");
else
System.out.println("It's NOT an image");
}
}
ho provato ma sempre tornare "application/octet-stream – dermoritz
hi @dermoritz questo sembra essere un problema nel sistema. Dai un'occhiata a questo SO post http: // StackOverflow.it/questions/4855627/java-mimetypesfiletypemap-always-return-application-octet-stream-on-android-e –
E se provenisse dall'URL? Prima di salvare l'URL in un file? Ho ottenuto "application/octet-stream" al posto dell'immagine. Qualche idea ? – WowBow
Si può provare qualcosa di simile:
import javax.activation.MimetypesFileTypeMap;
File myFile;
String mimeType = new MimetypesFileTypeMap().getContentType(myFile));
// mimeType should now be something like "image/png"
if(mimeType.substring(0,5).equalsIgnoreCase("image")){
// its an image
}
questo dovrebbe funzionare, anche se non sembra essere il più elegante versione.
mi chiedo dove è la differenza dalla mia soluzione –
scusa, quando ho scritto la mia risposta non era lì ... forse mi ci è voluto troppo tempo per scriverlo. Ma hai ragione, è completamente uguale :) – GameDroids
eheh, nessun problema. Penso che capiti a tutti tutto il tempo qui. :) –
In Java 7, c'è il metodo java.nio.file.Files.probeContentType(). Su Windows, questo utilizza l'estensione del file e il registro (non controlla il contenuto del file). È quindi possibile controllare la seconda parte del tipo MIME e verificare se è nel formato <X>/image
.
funziona ma dovresti usare la prima parte "image/jpeg" – dermoritz
Su Linux, sembra guardare solo l'estensione sulla mia macchina. Modificato un file .jpeg in .txt e restituito "text/plain". Mi piace la risposta di Krystian qui sotto. – yngwietiger
Ci sono una varietà di modi per farlo; vedere altre risposte e i link alle domande correlate. (L'approccio Java 7 sembra il più attraente per me, perché utilizza le convenzioni specifiche della piattaforma per impostazione predefinita e puoi fornire il tuo schema per la determinazione del tipo di file.)
Tuttavia, vorrei solo sottolineare che no meccanismo è del tutto infallibile:
I metodi che si basano sul suffisso del file sarà ingannato se il suffisso è non standard o sbagliato.
I metodi che si basano su attributi di file saranno ingannati se il file ha un attributo di tipo contetnt errato o del tutto assente.
I metodi che si basano sulla firma del file possono essere ingannati dai file binari che hanno gli stessi byte di firma.
Anche il semplice tentativo di leggere il file come immagine può essere ingannato se si è sfortunati ... a seconda dei formati di immagine che si provano.
if(ImageIO.read(*here your input stream*) == null)
*IS NOT IMAGE*
E c'è anche una risposta: How to check a uploaded file whether it is a image or other file?
Questo è l'unico modo in cui posso trovare se un file è un file immagine (su un sistema Ubuntu con Java 8). – zafar142003
si può provare qualcosa di simile:
String pathname="abc\xyz.png"
File file=new File(pathname);
String mimetype = Files.probeContentType(file.toPath());
//mimetype should be something like "image/png"
if (mimetype != null && mimetype.split("/")[0].equals("image")) {
System.out.println("it is an image");
}
import javax.activation.MimetypesFileTypeMap;
import java.io.File;
class Untitled
{
public static void main(String[] args)
{
String filepath = "/the/file/path/image.jpg";
File f = new File(filepath);
String mimetype= new MimetypesFileTypeMap().getContentType(f);
if(mimetype.startsWith("image/"))
System.out.println("It's an image");
else
System.out.println("It's NOT an image");
}
}
È inoltre possibile utilizzare questo modo se si desidera controllare immagini con estensioni limitate. Ma dovresti estendere le estensioni del codice che vuoi filtrare.
public static boolean isImage(String filepath) {
String[] extensions = {".jpg",".png"};
for (String extension : extensions) {
if(filepath.endsWith(extension)){
System.out.println("Its an image");
return true;
}
}
return false;
Ma vi consiglio in questo modo,
public static boolean isImage(String filepath) throws IOException {
File f = new File(filepath);
return (ImageIO.read(f) != null);
}
- 1. Come verificare se un file è un file immagine valido?
- 2. Come verificare se esiste un file immagine remoto in PHP?
- 3. Rilevare se un file di immagine PNG è un'immagine trasparente?
- 4. Controllare se un file è un'immagine
- 5. Come verificare se esiste un file
- 6. come posso verificare se esiste un file?
- 7. Verificare se esiste un file in Yii
- 8. Come verificare se un percorso è un file o una directory nel file batch di Windows?
- 9. come verificare se un file jar è valido?
- 10. Come verificare se un file è un'immagine valida?
- 11. Script Python per verificare se un file zip è corrotto
- 12. Come posso verificare se un file è eseguibile in node.js?
- 13. Come posso verificare se un file è o meno un'immagine?
- 14. Come verificare se un file è vuoto in Bash?
- 15. Come verificare se un file non è vuoto nel batch
- 16. come verificare se un file è stato selezionato usando javascript?
- 17. Come verificare se un file è già aperto in C
- 18. Come verificare se un file è compresso in R
- 19. Verificare se un file è bloccato in Java
- 20. Come verificare se un file è stato creato da pickle?
- 21. Come posso determinare se un file è un file immagine in .NET?
- 22. come verificare se un file è una directory o un file normale in python?
- 23. Come verificare se il file è binario?
- 24. Come verificare se il file è un'immagine
- 25. controllo se un file è eseguibile
- 26. posso verificare se esiste un file in un URL?
- 27. Come verificare se un file esiste da un url
- 28. Come verificare se un file esiste su un server esterno
- 29. posso verificare se esiste un file in un URL?
- 30. Tentativo di verificare se un file esiste nella memoria interna
http://stackoverflow.com/questions/670546/determine-if-file-is-an-image (C#, ma si tratta di controllare le intestazioni , che non è specifico per la lingua) o http://stackoverflow.com/questions/2192717/check-if-a-file-is-an-image o http://stackoverflow.com/questions/9244710/know- se-a-file-is-a-image-in-java-Android o – birryree