Salvare un documento in DB access in progetto ASP.NET

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Ho cercato per settimane qualcosa che mi spiegasse come è possibile salvare all'interno di un db access, un qualsiasi documento (txt, word, excell, etc.), attraverso il codice vb.net, e non ho trovato niente sia su applicazioni vb tradizionali ne da una applicazione asp.net, ... spero che qualche buon'anima mi possa dare una mano...
Grazie anticipatamente.
Val.
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Dovresti provare a salvare il file in un MemoryStream, e poi passarlo nella query ad un campo "Oggetto OLE" di Access. Ti premetto che non l'ho mai fatto su Access, ma solo su SQL, e so per certo che funziona anche su Oracle...

Se poi non sai più dove andare a sbattere la testa, ti consiglio di salvare solo il path del file in un campo testo... Ma forse la tua esigenza non prevede questa soluzione... :confused:

:byebye:
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Grazie ....

purtroppo la mia scarsa esperienza con vb.net e asp non mi permettono di comprendere bene:
1) cos'è un MemoryStream, un oggetto asp.net o vb.net o una proprietà di qualcosa?
2) quando mi parli della query intendi in un comando "UPDATE", con la specifica della path del file?
Grazie mille dell'interessamento!!!!!!
jackil.
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Ciao scusa,

MemoryStream è un oggetto per gestire uno stream (appunto) di dati, che può essere caricato da un file presente su disco, per il db invece, sì UPDATE o INSERT che sia, ma il contenuto di MemoryStream lo devi passare come array di byte (byte[]), come se passassi una normalissima stringa in un campo testo...

Se hai bisogno di un po' di codice di prova fammi sapere che cerco qualcosa fra i miei progetti...

:byebye:
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Grazie mille artcava...

....mi faresti un favore se mi inviassi qualche script o anche un link a pagine sull'argomento..... non so proprio di cosa stiamo parlando... nel senso che non sò come si passa un array di dati in un comando update o insert!!!!!
Grazie mille per l'interessamento... appena posso devo visitare il tuo sito!!!!!
Jackil.
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Questa la funzione che uso io, è in C#, ma se ti serve in VB ci metti un attimo...

Codice:
        /// <summary>
        /// Converte un file partendo dal suo path in un Array di bytes. Utile al salvataggio nel DB.
        /// </summary>
        /// <param name="FileName">Il percorso del File</param>
        /// <param name="FileConverted">Il file convertito</param>
        /// <returns>True se il file viene convertiro, False altrimenti</returns>
        public static bool ConvertFileToByteArray(string FileName, out byte[] FileConverted)
        {
            FileConverted = null;

            if(!File.Exists(FileName))
                return false;

            FileStream fs = null;

            try
            {
                fs = new FileStream(FileName, FileMode.Open);
                FileInfo fi = new FileInfo(FileName);
                long temp = fi.Length;
                int length = Convert.ToInt32(temp);
                FileConverted = new byte[length];
                fs.Read(FileConverted, 0, length);
                fs.Close();
                return true;
            }
            catch(Exception ex)
            {
                Global.Log.Write(LogSeverity.Critical, "Global", "ConvertFileToByteArray", ex.Message);
                return false;
            }
        }

All'uscita dalla funzione prendi FileConverted e lo metti in una query del tipo...

Codice:
"UPDATE tabella SET OLEObjectField = " + FileConverted + " WHERE... "

Spero possa bastare...

:byebye:
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Certo che può bastare!!!!!

Cavolo se può bastare!!!! Grazie mille!!!!
Come potrò sdebitarmi?????
...a presto, Jackil.
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Anche 6 caffè!...

io abito in Valdarno, vicino a firenze: quando passi da queste parti sarebbe per me un onore e piacere!...
Non vorrei sembrare tropp"approfittatore", ma per concludere l'argomento avrei un'ultima domanda: se io volessi estrarre il documento dal db access e metterlo a disposizione dell'utilizzatore ad esempio attraverso una textbox per .rtf o altro (es. l'applicazione con la quale è stato realizzato: word) dovrei sempre usare lo Stream memory o comunque estrarre il file come array di byte? .... tutto questo a a che fare con l'upload dei file?
Ancora grazie!
Jackil.
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Rieccomi...

Sì, devi riprendere il file come Byte[], più o meno così:

Codice:
protected void Page_Load(object sender, EventArgs e)
{
    'Qui fai la connessione etc...
    Response.ContentType = "Application/unknown";
    Response.AddHeader("content-disposition", "attachment; filename=" + Recordset("FileName"));
    Response.BinaryWrite(Recordset("OLEObjectField"));
    Response.End();
}

Ti costruisci una pagina che nel code behind carica il file e lo sputa fuori...

Allora a presto!
:byebye:
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Adesso i caffè sono 12! Grazie, Grazie, Grazie, Grazie!!!!!!!!!!!!!!!

Grazie art (ti dispiace il riduttivo?), oggi e stasera proverò il tutto......Buon week-end!
Jackil.
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Funziona Anche Con Access!

Ciao Art, ho provato lo script e il tutto funziona anche in access! Naturalmente l'ho tradotto in vb.net, cosa veramente banale. Unica cosa è che aprendo il db con access non posso aprire il documento che ho salvato, ma non è un problema: tanto lo riapro usando filestrem e con il metodo write salvo il file...
Una domanda: nella casella degli strumenti di vs.net, non ho (nei progetti asp.net), gli oggetti dialogbox: è normale perchè nei progetti asp.net non si possono usare le finestre predefinite (salva, open, etc.) oppure devo impostare dei riferimenti?
A presto.

Jackil
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Sì, nel campo del DB Access utilizzato vengono inseriti i Bytes, e quindi è impossibile vederli come normali file, se prima non vengono estratti...

Per il componente dialogbox, probabilmente devi solo aggiungere il riferimento all'assembly giusto, ma non te ne faresti comunque niente in ambiente web, se lo scopo è permettere all'utente di caricare il file dalle tue pagine devi usare il controllo FileUpload che fa tutto da solo, ed è in grado di richiamare l'API sul client dell'utente che fa aprire la Dialog...

Non puoi però fare il contrario, poiché il file quando fai il download proviene dalla rete internet, e la Dialog non è fatta per questo tipo di trasmissioni...

Devi usare il Response.AddHeader come ti ho postato un po' di messaggi fa'...

:byebye:
 

jackil

Nuovo Utente
30 Ott 2006
15
0
0
Grazie art, adesso credo sia tutto chiaro....

.....e con tutti i caffè che ti devo potresti rischiare un bell'esaurimento nervoso!
Grazie ancora, a presto.

jackil.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 6
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
E Salvare immagini PHP 0
L salvare codice html in mysql PHP 3
L salvare somma con sottrazione PHP 1
M Salvare coordinate Maps nel DB PHP 2
D SALVARE "MASCHERA" + "ALLEGATO PDF" IN UN UNICO PDF MS Access 0
A Twitter aggiungere tweet a campagna esistente o salvare pubblico Social Media Marketing 0
D Salvare in diversi campi mysql con diversi ID PHP 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
M Salvare JSONObject in Shared Preference Sviluppo app per Android 0
M [PHP] Salvare campo di una tabella in una variabile PHP 14
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M [PHP] FPDF Salvare su disco C locale Windows PHP 3
C Photoshop CS 6 salvare una modifica Photoshop 0
L [PHP] Salvare csv da form dati PHP 5
A Salvare immagine ridimensionata in MySql con GD PHP 12
G php salvare file in campo blob mysql: massimo 4MB PHP 1
M Salvare pagine web come segnalibro con istruzioni javascript Javascript 0
L Salvare posizione maps Sviluppo app per Android 0
G [PHP] SALVARE RECORD ESTRATTI DA DATABASE PHP 6
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
P [SOLVED] salvare il TCPDF output in mysql e rivisualizzarlo PHP 3
M Salvare i dati nel db e aprire altra pagina php PHP 7
M Form ASP su MsSQL salvare 2 campi in 1 Classic ASP 4
V [PHP] Salvare campo radio in db e leggerlo PHP 15
S [PHP] Salvare dati tabella in formato exel PHP 0
Benix89 Come salvare radio button selezionato Magento 1
Benix89 Salvare radio button selezionato PHP 2
P Come salvare il proprio diario di fb Discussioni Varie 0
P Salvare i dati restituiti dopo autenticazione OAuth2 Javascript 0
M Salvare in tabella link file importato PHP 1
F Cliccare e salvare src immagine HTML e CSS 2
M Cartella predefinita dove salvare i backup PHP 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 7
C Salvare il click su di un Button Sviluppo app per Android 9
Emix Salvare documenti in DB PHP 3
D salvare righe dinamicamente PHP 3
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C Salvare dati form in un file di testo PHP 2
M Salvare select con cookie PHP 1
IImanuII Salvare/recuperare html da un db PHP 5
S Salvare dei dati in una determinata tabella in base al select che l'utente seleziona PHP 8
M salvare una activity e richiamarla Sviluppo app per Android 6
Shyson Salvare impostazioni del Database Database 0
Z Salvare Form su un file .JPG Visual Basic 0
B Salvare dati in locale e sincronizzarli... Javascript 26
P Salvare vari tipi di file in cartelle. PHP 6

Discussioni simili