come da titolo, come posso salvare un file prelevato mediante jfilechooser in un campo del mio db di tipo blob??? devo per caso effettuare qualche conversione???
Grazie a tutti
come da titolo, come posso salvare un file prelevato mediante jfilechooser in un campo del mio db di tipo blob??? devo per caso effettuare qualche conversione???
Grazie a tutti
gentilmente mi aiutereste???
Che DB usi?
Cmq così dovrebbe andare:
Codice PHP:
PreparedStatement pstmt = conn.prepareStatement ("INSERT INTO tabella (campoBLOB) VALUES (?)");
File fBlob = new File ( "tuoFile.ext" );
FileInputStream is = new FileInputStream ( fBlob );
pstmt.setBinaryStream (1, is, (int) fBlob.length() );
pstmt.execute ();
...
Al mio segnale... scatenate l'inferno!
utilizzo MiSql....ma a che serve l'istruzione FileInputStream is = new FileInputStream ( fBlob )???
Il file non viene creato con l'istruzione File fBlob = new File ( "tuoFile.ext" )???
E poi perchè l'istruzione pstmt.setBinaryStream (1, is, (int) fBlob.length() ) ha tre valori in input???
Grazie mille mi saresti di grande aiuto perchè è un argomento delicato per un neofita come me...
Cordiali saluti.
Ho provato ad utilizzare queste istruzioni ma non funzionano...Originariamente inviato da R@ve M@ster
Che DB usi?
Cmq così dovrebbe andare:
Codice PHP:
PreparedStatement pstmt = conn.prepareStatement ("INSERT INTO tabella (campoBLOB) VALUES (?)");
File fBlob = new File ( "tuoFile.ext" );
FileInputStream is = new FileInputStream ( fBlob );
pstmt.setBinaryStream (1, is, (int) fBlob.length() );
pstmt.execute ();
...
Prova così:
La prima istruzione crea un oggetto di tipo File (un descrittore)codice:PreparedStatement pstmt = conn.prepareStatement ("INSERT INTO tabella (campoBLOB) VALUES (?)"); File fBlob = new File ( "tuoFile.ext" ); FileInputStream is = new FileInputStream ( fBlob ); pstmt.setBinaryStream (1, is, fBlob.available() ); pstmt.execute ();
La seconda crea uno stream di input per la lettura del file.
La terza dice alla Statement che il primo (e unico) parametro della query va valorizzato prendendo i dati dall'InputStream e che tale campo avrà la lunghezza specificata (la lunghezza del file: is.available() ).
L'ultima dà il via all'esecuzione della query.
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
Ma la query non potrebbe essere settata mediante setblob al posto di setbinarystream?
il metodo setBlob riceve come parametro un blob. potrebbe essere usato se tu prelevassi un blob da una tabella e lo inserissi poi in un'altra. Ma tu hai un fileOriginariamente inviato da stefano085
Ma la query non potrebbe essere settata mediante setblob al posto di setbinarystream?![]()
Al mio segnale... scatenate l'inferno!
salve a tutti ho provato quest'altro codice, ma il metodo available() non è un metodo per il tipo di dato File....Qualcuno sa come posso fare???Originariamente inviato da LeleFT
Prova così:
La prima istruzione crea un oggetto di tipo File (un descrittore)codice:PreparedStatement pstmt = conn.prepareStatement ("INSERT INTO tabella (campoBLOB) VALUES (?)"); File fBlob = new File ( "tuoFile.ext" ); FileInputStream is = new FileInputStream ( fBlob ); pstmt.setBinaryStream (1, is, fBlob.available() ); pstmt.execute ();
La seconda crea uno stream di input per la lettura del file.
La terza dice alla Statement che il primo (e unico) parametro della query va valorizzato prendendo i dati dall'InputStream e che tale campo avrà la lunghezza specificata (la lunghezza del file: is.available() ).
L'ultima dà il via all'esecuzione della query.
Ciao.![]()
Ho scritto io una fesseria:Originariamente inviato da stefano085
salve a tutti ho provato quest'altro codice, ma il metodo available() non è un metodo per il tipo di dato File....Qualcuno sa come posso fare???
Ciao.codice:pstmt.setBinaryStream (1, is, is.available() );![]()
"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