Ciao,
ho la necessità di salvare un'immagine prefissata su una macchina quando si accede ad una pagina html.
E' possibile farlo? considerando che non deve essere richiesto nessun messaggio di conferma
Grazie
Ciao,
ho la necessità di salvare un'immagine prefissata su una macchina quando si accede ad una pagina html.
E' possibile farlo? considerando che non deve essere richiesto nessun messaggio di conferma
Grazie
Spiegati meglio: la vuoi salvare da un'applicazione che gira sulla macchina e da cui accedi alla pagina html, oppure da un applet, oppure...?
Comunque, per salvare immagini da rete, io faccio così
codice:BufferedInputStream bis = new BufferedInputStream((new URL(tua_url])).openStream(), 4096); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(localFileName), 4096); byte[] buf=new byte[4096]; int byteRead; while ((byteRead=bis.read(buf,0,4096))>=0) { bos.write(buf,0,byteRead); } bis.close(); bos.flush(); bos.close();
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Fa al caso mio, ho una servlet che viene passata in un url che mi crea un immagine, ma con il tuo codice mi crea un immagine di dimensione 0, mentre se eseguo esclusivamente la url, l'immagine viene creata.
Posteresti un po' più di codice? Magari succede un qualche inghippo da qualche parte: stai gestendo le eventuali eccezioni?
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Ho usato il tuo codice, l'immagine che deve essere create ha dimensione di 35 kb.
E non si verifica nessun eccezione, ed ho messo tutto in un blocco try/catch
codice:BufferedInputStream bis = new BufferedInputStream((new URL("http://macchina/servlet......")).openStream(), 4096); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("pippo.jpg"), 4096); byte[] buf=new byte[4096]; int byteRead; while ((byteRead=bis.read(buf,0,4096))>=0) { bos.write(buf,0,byteRead); } bis.close(); bos.flush(); bos.close();
Ti posto tutta la mia servlet
e da browser, facendocodice:import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; public class SavePicture extends HttpServlet { private String url; public void init(ServletConfig config) throws ServletException { // Always call super.init super.init(config); } public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException { url = request.getParameter("imgurl"); try { BufferedInputStream bis = new BufferedInputStream((new URL(url)).openStream(), 4096); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\immagine.jpg"), 4096); byte[] buf=new byte[4096]; int byteRead; while ((byteRead=bis.read(buf,0,4096))>=0) { bos.write(buf,0,byteRead); } bis.close(); bos.flush(); bos.close(); } catch (Exception e) { System.out.println(e.toString()); } } }
Mi viene salvato il logo di google in immagine.jpg. Sei sicuro del percorso dell'immagine che gli passi?
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"