Estimados, estoy por incorporar a mi webapp (C# - Winforms aun en ASPNET) la 
capacidad de subir un archivo al server que luego va a ir a una DB (mi 
proveedor de hosting no me habilita FileStream asi que voy a tener que 
guardarlo como varbinary). Serán archivos “livianos” de todos modos.


La parte de guardar en DB creo tenerla resuelta con un codigo similar el de uno 
de estos ejemplos: 
http://www.morgantechspace.com/2014/05/How-to-Store-and-Retrieve-Image-in-SQL-Server-Database.html


De lo que no estoy seguro, es cual es la major estrategia para subir el archivo 
del navegador al server. Primero imaginé usar un WebMethod y AJAX, como vengo 
hacienda para todo el resto de las operaciones del usuario contra el server, y 
dentro del metodo estatico que se pública como WebMethod recibir los bytes y 
luego pasarlos a la función que graba en la DB. Pero buscando y leyendo parece 
que no es possible subir un archivo con AJAX y WebMethod (mi objetivo es evitar 
el postback). Mal que me pese, parece que mi alternativa es ir por controles 
ASP como FileUpload. En concreto queria consultartes:


¿Es hoy en dia FileUpload una opcion viable/adecuada?


¿Es possible usar FileUpload pero sin persistir los archivos en disco antes de 
mandarlos a la DB? (mi objetivo es recibir los bytes y “mandarlos” a la DB para 
evitar archivos huerfanos en posibles fallos y ademas evitar tener que lidiar 
con permisos y/o nombres duplicados)


Si no entendí mal, al usar fileupload tendré que usar el “truco” de ponerlo 
como un iframe para que la pagina donde está mi usuario operando no haga un 
postback completo. ¿Comprendí bien la teoria de la tecnica?



Como veran, son preguntas más de recomendaciones que un pedido de codigo 
especifico. Es solo que antes de ponerme a escribir codigo y provar queria mas 
o menos entender si estoy yendo por los caminos adecuados.


gracias!


Joe

Responder a