Domanda

io uso Apache Commons FileUpload per ricevere i file caricati in una Servlet, come descritto in http://code.google.com/appengine/kb/java.html#fileforms

        ServletFileUpload upload = new ServletFileUpload();

        FileItemIterator iterator = upload.getItemIterator(request);

        while (iterator.hasNext()) {
            FileItemStream item = iterator.next();
            InputStream stream = item.openStream();

            if (!item.isFormField()) {
              System.out.println("Got an uploaded file: " + item.getFieldName()
                        + ", name = " + item.getName() + " type = " +               item.getContentType());

            }

Non sono sicuro se item.getContentType () sarà anche il coutain la codifica del file per file di testo che può essere diverso dalla richiesta di codifica, (ad esempio ISO-8859-1), o se sempre contiene solo il tipo di file solo. Nei miei test ho ricevuto solo "text / plain", ma mi aspettavo "text / plain; Encoding = ISO-8859-1"., Che è stato inviato dal client

È la mia comprensione corretta che l'item.getContentType () dovrebbe includere la codifica (se viene inviato dal client)?

È stato utile?

Soluzione

FileItemStream.getContentType () restituisce ciò che è stata approvata dal POST del browser. Potrebbe essere "text / plain" o potrebbe essere "text / plain; Encoding = ISO-8859-1" o potrebbe essere completa spazzatura. Il tipo di contenuto è solo un valore di stringa che si sta confidando al browser di dare correttamente (in altre parole, non si fidano affatto).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top