Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non conosco GWT quindi posso solo andare "a naso" (e comunque posso dirti alcune cose sulla lettura da file).

    Innanzitutto il tuo codice è proprio come lo vedo nel post? Cioè istanzi FileUpload e poi subito dopo prendi il filename? Non credo abbia senso così ..... qui stai solo creando la UI o stai già gestendo il submit? (ripeto: non me ne intendo di GWT).

    In ogni caso: dimentica available(), serve praticamente quasi mai. E inoltre non leggere un byte per volta .... altrimenti "fai notte".
    grazie per la risposta. no diciamo che fileupload, form e horizontalPanel li instazio prima poi catturo l'evento per l'inserimento e prima di collegarmi al db volevo prendere l'immagine per mandargliela. come faccio a prendere i byte tutti insieme? sapresti darmi una mano su questo fronte?.
    anche perchè se nn riesco in questo modo devo inserire le immagini su una acartella sul server e prenderle da li ma anche questo passaggio mi risulta un pò ostico che le varie funzioni offerte da questi oggetti(fileUpload, form) sono abbastanza risicate.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da sella89 Visualizza il messaggio
    poi catturo l'evento per l'inserimento
    Ok, allora ha senso.

    Quote Originariamente inviata da sella89 Visualizza il messaggio
    e prima di collegarmi al db volevo prendere l'immagine per mandargliela. come faccio a prendere i byte tutti insieme?
    La dimensione del file potresti forse conoscerla dal FileUpload (verifica la documentazione .... va usata, se c'è io non conosco quel FileUpload).
    Altrimenti da un pathname in String puoi comunque creare un java.io.File e determinare la lunghezza. Ma se FileUpload fornisce la lunghezza ... è meglio.

    A quel punto creare un array di byte della giusta dimensione è banale, e poi anche leggere tutto il contenuto (e ripeto: non un byte per volta!). A dire il vero, sarebbe meglio poter ottenere un oggetto "Blob" (in JDBC è java.sql.Blob) e prenderne il OutputStream e poi leggere e passare blocchi di byte. Ma dipende da quale API/framework stai usando per l'accesso al database.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ok, allora ha senso.


    La dimensione del file potresti forse conoscerla dal FileUpload (verifica la documentazione .... va usata, se c'è io non conosco quel FileUpload).
    Altrimenti da un pathname in String puoi comunque creare un java.io.File e determinare la lunghezza. Ma se FileUpload fornisce la lunghezza ... è meglio.

    A quel punto creare un array di byte della giusta dimensione è banale, e poi anche leggere tutto il contenuto (e ripeto: non un byte per volta!). A dire il vero, sarebbe meglio poter ottenere un oggetto "Blob" (in JDBC è java.sql.Blob) e prenderne il OutputStream e poi leggere e passare blocchi di byte. Ma dipende da quale API/framework stai usando per l'accesso al database.
    guarda uso proprio JDBC, purtroppo fileUpload non ha la possibilità di verificare la lunghezza del file. il mio intento era proprio quello di inserire il blob però sinceramente mi sta facendo uscire pazzo che è come se nn leggesse il byte e l'unico modo che mi era venuto in mente, per scorrere l'array di byte , era usare l'available e il read. ma sono inefficaci mi danno errori. nn so proprio che altro inventarmi.
    con l'outputStream come suggerisci di fare? la possibilità di leggere tutto insieme mi sapresti consigliare qualche cosa?

    grazie davvero mille per il supporto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da sella89 Visualizza il messaggio
    guarda uso proprio JDBC, purtroppo fileUpload non ha la possibilità di verificare la lunghezza del file. il mio intento era proprio quello di inserire il blob però sinceramente mi sta facendo uscire pazzo che è come se nn leggesse il byte e l'unico modo che mi era venuto in mente, per scorrere l'array di byte , era usare l'available e il read. ma sono inefficaci mi danno errori. nn so proprio che altro inventarmi.
    con l'outputStream come suggerisci di fare? la possibilità di leggere tutto insieme mi sapresti consigliare qualche cosa?
    java.sql.Blob è una interfaccia ... non crei tu istanze di Blob, è la Connection che te le fornisce tramite createBlob().
    Quindi poi prendi il suo OutputStream con setBinaryStream(1) e leggi a blocchi di tot byte. Istanzia un array di es. 4096 byte, leggi in ciclo un blocco da file e lo passi al Blob e così via. Roba banale se hai basi sul I/O basilare.

    Poi quando fai una query di Insert (usa un PreparedStatement), puoi assegnare il blob.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    23
    Quote Originariamente inviata da andbin Visualizza il messaggio
    java.sql.Blob è una interfaccia ... non crei tu istanze di Blob, è la Connection che te le fornisce tramite createBlob().
    Quindi poi prendi il suo OutputStream con setBinaryStream(1) e leggi a blocchi di tot byte. Istanzia un array di es. 4096 byte, leggi in ciclo un blocco da file e lo passi al Blob e così via. Roba banale se hai basi sul I/O basilare.

    Poi quando fai una query di Insert (usa un PreparedStatement), puoi assegnare il blob.
    si ti ringrazio mi sono espresso male, lato server uso gia preparedStatement e il mio intento era proprio quello di fare un setBinaryStream().
    il mio problema è quando prendo l'immagine, la classe FileUpload() nn mi permette questo, credo che dovrò interfacciarmi con la servlet (fino adesso mai fatto) visto che GWT , per questo tipo di procedimento ,dovrebbe delegare tutto alla jsp(credo).
    quindi ora vedo come fare per comunicare con la servlet.
    altrimenti per caricare l'immagine su una cartella all'interno del Server, o del mio progetto, andando poi a prenderle direttamente da li, hai qualche consiglio?

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.