PDA

Ver la Versión Completa : Progra!!! * Mostrar archivo original de un dato binario * VS2010. – Urge!


esalazar
03-Aug-2011, 16:48
Que tal Jóvenes y no tan Jóvenes, espero thread vaya en este tema.

Bueno les cuento mi problemática… resulta que estoy realizando un sistema y contiene envió de notificaciones periódicas, etc, etc… pero obvio debe de poder enviar archivos adjuntos y existe una pantalla en la cual se pueden ver las notificaciones enviadas y se debe de poder ver los archivos adjuntos… todo esto es en WinForm de VS2010. La cuestión es que los archivos los estoy guardando en la base de datos en un capo tipo imagen (aca se guarda en binario).
El mantenimiento para guardar los archivos adjuntos ya lo tengo listo, pero…. Lo que no puedo lograr es recuperar el archivo original de un dato binario, únicamente si son fotos o imágenes pero no puedo lograr recuperar un documento por ejemplo Word, pdf, etc…
Es por eso que necesito si alguien me puede echar la mano u orientarme un poco con este tema… el código es de Visual Basic.

Muchas gracias mucha…

DEViANCE
03-Aug-2011, 16:56
http://www.canalvisualbasic.net/manual-net/vb-net/

:boohoo:

esalazar
03-Aug-2011, 16:57
http://www.canalvisualbasic.net/manual-net/vb-net/

:boohoo:

waaaaaa tristin ya tenia un thread alli y nadie contesto tampoco :(


http://www.canalvisualbasic.net/foro/bases-de-datos-ado-ado-net/recuperar-archivo-de-campo-image-17750/

esalazar
04-Aug-2011, 09:18
Nada Mucha?

rquanleon
04-Aug-2011, 09:48
proba grabarlo a disco y de plano en otro campo guardas el nombre original y el tipo de archivo para que sepas que extension tenia y lo renombras para ver si lo abre.

si ya te guarda imagenes, deberia ser lo mismo con cualquier otro archivo

esalazar
04-Aug-2011, 10:25
proba grabarlo a disco y de plano en otro campo guardas el nombre original y el tipo de archivo para que sepas que extension tenia y lo renombras para ver si lo abre.

si ya te guarda imagenes, deberia ser lo mismo con cualquier otro archivo

kval eso queria intentar, guardar siempre el contenido en binario y fuardar la extencion, luego hacer una funcion que cree un archivo en el disco con el contenido del binario y le ponga la extencion que guarde... bueno ya vere si asi jala... buena onda.

esalazar
04-Aug-2011, 16:03
Mucha ya encontré la manera!!! Bueno por si alguien lo necesita se la comparto…



Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Dim row As System.Data.DataRow = GridView1.GetDataRow(GridView1.FocusedRowHandle)
My.Computer.FileSystem.WriteAllBytes("D:\ALEJANDRO\Test.jpg", CType(row("ATTACHMENT"), Byte()), True)
End Sub



Bueno la parte funcional es My.Computer.FileSystem.WriteAllBytes("D:\ALEJANDRO\Test.jpg", CType(row("ATTACHMENT"), Byte()), True)



En donde al path obvio hay que concatenarle su extensión que eso se puede obtener a la hora de guardar el documento, yo ahorita lo tengo quemadito para efectos funcionales momentáneos, luego el segundo parámetro es la data(byte) que viene de la base de datos en un row del dataset…. Y por último va un boolean que si no estoy mal es para caerle encima o no a archivos con el mismo nombre…

Por si se preguntan, también existe el hermanito de esta función pero para grabar el archivo a la base de datos convertido en binario, bueno lo que se necesita en si es convertirlo bien, por eso les recomiendo utilizarlo así:



mCommand.Parameters.Add("@p_ATTACHMENT", SqlDbType.Image).Value = My.Computer.FileSystem.ReadAllBytes(path.ToString)

esa parte es la que interesa para guardar el archive… ya como lo hagan ustedes si con storeprocedures u otra manera muy su onda pero así me jalo a mi :) así que ahí les dejo la solución por si les sirve…