PDF FILE DA E VERSO ORACLE BLOB

lunedì 25 giugno 2012 - 17.04
Tag Elenco Tags  .NET 2.0  |  Visual Studio 2005

sorigrafia Profilo | Junior Member

{VS 2005 - 2.0 - VB)
Ciao a tutti...sto provando la lettura e la scrittura di files PDF in campi ORACLE BLOB.
Ho 2 domande semplici, sono nuovo dell' argomento gestione file.

1 - Per la scrittura ho trovato e sono riuscito in questo modo:

'Open file on disk
Dim txtFilepath As String = "Z:\TEST.PDF"

Dim fs As FileStream = New FileStream(txtFilepath, FileMode.Open, FileAccess.Read)
Dim r As BinaryReader = New BinaryReader(fs)
myConnection.Open()

Dim dati() As Byte = New Byte((fs.Length) - 1) {}
fs.Read(dati, 0, CType(fs.Length, Integer))
fs.Close()

Dim InsertCommand As String = "INSERT INTO TESTBLOB (ID, DESCRIZIONE, DATI) VALUES ('002','TESTBLOB',:PDF)"

Dim myCommand As OracleCommand = New OracleCommand(InsertCommand, myConnection)
Dim myParam As OracleParameter = myCommand.Parameters.Add("PDF", OracleType.Blob)
myParam.Value = dati

myCommand.ExecuteNonQuery()
myConnection.Close()
r.Close()
fs.Close()

A riguardo devo chiedervi: la selezione del file per ora l' ho fatta con l' oggetto FileUpload ma ho visto che NON VIENE LETTO DI DEFAULT TUTTO IL PERCORSO COMPLETO DEL FILE SELEZIONATO se da Internet Explorer (il più usato dove devo rilasciare la app) se non viene abilitata la lettura completa dei file in upload (IE - Strumenti - Opzioni - Protezione - Livello Personalizzato - Includi il percorso locale durante il caricamento dei file in server --> ATTIVA).

1 DOMANDA: C' E' UN MODO MIGLIORE CHE LEGGA TUTTO IL PERCORSO DEL FILE IN UPLOAD PER POTERLO POI INERIRE NEL DB??

---------------------------------------------

2 - Per la lettura sono riuscito ed ho trovato in questo modo:

Dim myCommand As New OracleCommand("SELECT * FROM TESTBLOB WHERE ID = '001'", myConnection)
myConnection.Open()
Dim myReader As OracleDataReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default)
Try
While myReader.Read()
Dim myLob As OracleLob = myReader.GetOracleLob(myReader.GetOrdinal("DATI"))
If Not myLob.IsNull Then
Dim FN As String = myReader.GetString(myReader.GetOrdinal("DESCRIZIONE"))
Dim fs As FileStream = New FileStream("Z:\" + FN + ".pdf", FileMode.Create)
Dim w As BinaryWriter = New BinaryWriter(fs)
w.Write(myLob.Value)
w.Close()
fs.Close()

End If
End While
Finally
myReader.Close()
myConnection.Close()
End Try

Sono riuscito ma in questo modo il file viene scritto localmente!

2 DOMANDA: C' E' MODO DI VISUALIZZARE IL FILE PDF LETTO DAL CAMPO BLOB, SENZA DOVER SCRIVERE IL FILE LOCALMENTE/IN RETE?

grazie mille a chi mi riuscirà ad aiutare!


--

AirLainz
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5