none
como gardar archivos en el servidor y rutas en BD SQL

    Question

  • Hola,

    quiero guardar en el servidor archivos de diferente tipo .PDF, .JPG y .XLS  pero en la base de datos solo quiero la ruta a esos archivos, ya que para algunos casos necesito exactamente el mismo archivo. la idea ya en la vista es que cada usuario tiene su archivo *.PDF como suyo "aparentemente", pero internamente es el mismo para todos.

    en la vista quiero cargar para el cliente el archivo.

    perdon solo tengo Paint

    tengo visual studio 2010 con c#, programo bajo MVC3 y SQL 2008 r2

    muchisimas gracias

    Carlos

    Friday, November 23, 2012 10:08 PM

Answers

  • Bueno...

    No hay problema. Hay varias maneras de hacerlo, en función de donde y como guardas tus archivos. Voy suponer que los ficheros estan en una carpeta C:\ficheros\. 

    Lo suyo es tener un controlador con una acción para recuperar un fichero, p.ej.

    public ActionResult Obtener(string nombre)
    {
        return File(System.IO.Path.Combine("c:\ficheros\", nombre + ".pdf"), "application/pdf");
    }

    El método File devuelve un FileResult que sirve para enviar al cliente (navegador) no una vista si no los datos de un archivo.

    Si esta acción está dentro de un controlador supongamos FicherosController ahora puedes obtener un fichero con una URL del tipo: /Ficheros/Obtner?nombre=MarcoJuridicoValidacion

    Si no te gusta el parámetro querystring tienes dos opciones:

    1. Si usas la tabla de rutas por defecto llamar al parámetro "id" en lugar de "nombre". Entonces la URL quedará como /Ficheros/Obtener/MarcoJuridicoValidacion
    2. Crearte una entrada en la tabla de rutas para personalizar la URL.

    Un saludo!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marked as answer by MartinezCarlos Tuesday, December 04, 2012 5:11 PM
    Wednesday, November 28, 2012 11:11 AM

All replies

  • ¿Y cuál es la ayuda que necesita?  ¿Cómo almacenar esto en base de datos?  ¿Cómo cargar esto en una vista MVC?

    Jose R. MCP
    Code Samples

    Friday, November 23, 2012 11:52 PM
  • José,

    gracias por tu tiempo. 

    lo que necesito es como guardar en la BD ese esquema en la BD la ruta del archivo y en HD del servidor el archivo.

    nuevamente muchas gracias.

    carlos

    Monday, November 26, 2012 2:02 PM
  • @MartinezCarlos
    Pero quieres que la ruta del archivo (la URL) sea distinta por cada usuario (aún cuando todas ellas apunten al mismo archivo físico)??

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    Tuesday, November 27, 2012 8:22 AM
  • Eduard,

    Muchas gracias,  seria la misma URL y apuntando al mismo archivo, 

    va la explicación larga, por que así como que no se le ve un uso. practico.

    estoy en una universidad desarrollando sistemas, tengo que hacer una base de datos para los posgrados digamos 20 posgrados del área donde estoy

    1.- Maestría en Electricidad

    2.- Maestría en Psicología

    3.- Maestría en Ciencias ambientales

    .

    .

    todas estas tienen adentro una estructura común. como lo es el "Marco jurídico de validación" y algunos archivos ya más específicos de cada posgrado como lo es "plan de estudios 2012"

    ahora bien, el Marco jurídico de validación es exactamente el mismo para los 20 posgrados, pero el plan de estudios es especifico, para cuestiones del Concejo Nacional de Ciencia y Tecnología  (CONACYT) evalúa de manera independiente a cada posgrado, por lo que cada evaluador de posgrado debe ver el Marco jurídico y el plan de estudios,

    mi idea para esto es tener en el servidor un solo archivo de Marco Jurídico de Validación y en la BD URL'S a ese archivo, para así solo modificar cuando sea necesario un solo archivo y no 20. 

    espero no haberlos revuelto más y muchisimas gracias por su ayuda.

    Posdata 20 son pocos en realidad tenemos cerca de 80 posgrados. 

    saludos Carlos Martínez

    Tuesday, November 27, 2012 2:01 PM
  • Bueno...

    No hay problema. Hay varias maneras de hacerlo, en función de donde y como guardas tus archivos. Voy suponer que los ficheros estan en una carpeta C:\ficheros\. 

    Lo suyo es tener un controlador con una acción para recuperar un fichero, p.ej.

    public ActionResult Obtener(string nombre)
    {
        return File(System.IO.Path.Combine("c:\ficheros\", nombre + ".pdf"), "application/pdf");
    }

    El método File devuelve un FileResult que sirve para enviar al cliente (navegador) no una vista si no los datos de un archivo.

    Si esta acción está dentro de un controlador supongamos FicherosController ahora puedes obtener un fichero con una URL del tipo: /Ficheros/Obtner?nombre=MarcoJuridicoValidacion

    Si no te gusta el parámetro querystring tienes dos opciones:

    1. Si usas la tabla de rutas por defecto llamar al parámetro "id" en lugar de "nombre". Entonces la URL quedará como /Ficheros/Obtener/MarcoJuridicoValidacion
    2. Crearte una entrada en la tabla de rutas para personalizar la URL.

    Un saludo!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marked as answer by MartinezCarlos Tuesday, December 04, 2012 5:11 PM
    Wednesday, November 28, 2012 11:11 AM
  • muchisimas gracias Eduard, ya lo estoy probando y va muy bien

    Carlos Martinez

    Tuesday, December 04, 2012 5:12 PM