Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Servlet salva immagine

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    11

    Servlet salva immagine

    Salve, sto cercando di salvare un'immagine che ricevo da un internet in un file locale.
    Sono in ambiente netBeans e chi svolge il lavoro è una servlet.
    Avevo creato una directory IMG nella root di progetto e mi attendevo di ritrovare l'immagine da salvare sotto la dir di JBoss\server\default\tmp\deploy dentro \IMG del .war invece mi dava errore nella creazione file perchè non trovava la directory IMG:
    fp=new File("IMG\nome_immagine.jpg");

    Ho provato a salvare senza path;
    fp=new File("nome_immagine.jpg");

    e ritrovo l'immagine nella root di NetBeans ???

    Non capisco che centra la dir di NetBeans?! :master:

  2. #2
    Prova ad usare le seguenti istruzioni

    Codice PHP:

    fp
    =new File("IMG\nome_immagine.jpg"); 
    if (!
    fp.exists()) {
        
    fp.mkdirs();

    in questo modo non scatterà alcuna eccezione perche la cartella IMG, se non esiste, viene creata (presumo nella root di netbeans) e all'interno di essa viene scritto il file.
    Per settare il path di una directory particolare in cui salvare l'immagine puoi usare un parametro di inizializzzazione per la servlet all'interno di web.xml:

    Codice PHP:
    ...
    <
    servlet>
            <
    servlet-name>myServlet</servlet-name>
            <
    servlet-class>web.MyServlet</servlet-class>
            <
    init-param>
                <
    param-name>path</param-name>
                <
    param-value>/var/</param-value>
            </
    init-param>
            </
    servlet>
        <
    servlet
    che poi potrai ricavare all'interno della servlet con l'istruzione:

    Codice PHP:

    String filePath 
    this.getInitParameter("path");//restituisce '/var/' 
    Potrebbe essere anche utile conoscere il path nel file system in cui si trova la tua servlet, puoi usare l'istruzione:

    Codice PHP:

    String myServletPath 
    this.getServletContext().getRealPath(..); 
    Ciao

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Attenzione:

    codice:
    File f = new File("IMG\\nome_immagine.jpg");
    Altrimenti succede il finimondo, dato che, oltretutto, "\n" è un carattere specialissimo!

    E' per questo che in Java i percorsi andrebbero sempre scritti Unix-Like (tanto ci pensa la JVM a ritrasformarli nel modo corretto):

    codice:
    File f = new File("IMG/nome_immagine.jpg");
    In questo modo si evita ogni sorta di problema.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    11
    Originariamente inviato da Santinizer
    Per settare il path di una directory particolare in cui salvare l'immagine puoi usare un parametro di inizializzzazione per la servlet all'interno di web.xml:
    Si ho fatto in questo modo anche se ho scoperto che per scrivere il file sul disco vuole, nel file xml, il path scritto in maniera win classica (con i "\");
    <param-value>c:\mioprogetto\web\IMG</param-value>

    mentre per rileggerlo ad esempio, per visualizzare un'immagine, vuole solo la sotto directory del mio progetto quindi:
    String path="IMG/nome_img.jpg" (con gli slash stavolta girati "/")

    nn so perchè, ma mi funziona solo così.

    Cmq grazie per l'aiuto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    37
    ragazzi voi magari mi potete essere di aiuto, ho aperto una nuova discussione
    http://forum.html.it/forum/showthrea...readid=1429819
    se potete aiutarmi ne sarei felicissimo

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da vanno88
    ragazzi voi magari mi potete essere di aiuto, ho aperto una nuova discussione
    http://forum.html.it/forum/showthrea...readid=1429819
    se potete aiutarmi ne sarei felicissimo
    Non attaccarti a discussione vecchie degli altri per chiedere di andare a visionare una nuova discussione: il forum non si usa così.

    La discussione nuova è già visibile e non serve altro.

    Chiudo questa discussione vecchia.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.