Foros del Web » Programación para mayores de 30 ;) » .NET »

Dudas con Rutas En Aspx y C#

Estas en el tema de Dudas con Rutas En Aspx y C# en el foro de .NET en Foros del Web. Espero y me pueda auxiliar con esta duda. Tengo un pequeño sistemita en 3 capas asp.net y c# sera instalado en un server 2003. en ...
  #1 (permalink)  
Antiguo 28/01/2011, 12:00
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 0
Dudas con Rutas En Aspx y C#

Espero y me pueda auxiliar con esta duda.
Tengo un pequeño sistemita en 3 capas asp.net y c# sera instalado en un server 2003.
en la capa media c# que sera despues una dll tengo un metodo el cual despues que el usuario le ingresa un nuevo registro, como se le da seguimiento, le creo una carpeta. para ahi poner los archivos que genere, imagenes que suba, etc.

(1)._ para crear la carpeta utilizo un metodo similar a esto, donde nombre es un parametro dado por el sistema.:

private static string UrlBase = "C:/Documents and Settings/user/Mis
documentos/DocSistemaX/"; (Es una variable global)
DirectoryInfo dir = new DirectoryInfo(UrlBase + nombre);
if (!dir.Exists)
dir.Create();

(2)._ En la misma capa media genero un reporte en excel, el cual la plantilla la tengo en una carpeta en el sitio web. Este reporte sera guardado en la carpeta creada anteriormente.

* para acceder a la plantilla utilizo un codigo como el siguiente:
string rutaOrigen = AppDomain.CurrentDomain.BaseDirectory.ToString() + "Excel/Plantilla.xlsx";

* Para guardarlo en la carpeta, validar si existe algun archivo similar, etc. utilizo una variable similar a esto:

rutaDestino = UrlBase + nombreCarpeta + "/";

verifico si existe, le doy los nombre y lo guardo.
y retorno la rutaDestino a la capa web para que pueda Exportarlo:
HttpContext.Current.Response.WriteFile(RutaDevuelt a);

(3)._ para subir una imagen la capa web le pasa el nomber de la carpeta, nombre de la imagen y extencion y en la capa media para guardar utiliza una variable similar a la anterior (rutaDestino) para acceder a la carpeta y guardar.

(4)._ en la capa web para mostrar un logo que guardo en una carpeta en capa web. el nombre es guardado en la bd y para mostrarlo accedo de la siguiente forma.

string _Path = Server.MapPath("~/Logos/" +name_logo);

Todo funciona bien pero lo estoy probando localmente he leido que a veces hay problemas con las rutas una vez en el servidor.
El sistema sera accedido en intranet. ¿Consideran que funcionara bien las rutas en el servidor de la manera que las tengo? o ¿que puedo cambiarles para que funcionen correctamente?
Mil disculpas si no me explique bien y por el texto largo.
Gracias de antemano.
  #2 (permalink)  
Antiguo 30/01/2011, 14:56
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Dudas con Rutas En Aspx y C#

Si vas a trabajar en un server que administras directamente en una intranet no creo que tengas complicaciones, si no es asi te recomiendo que uses el metodo Request.MapPath para obtener la dirección de tu sitio en el server.

Saludos
  #3 (permalink)  
Antiguo 01/02/2011, 14:35
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Dudas con Rutas En Aspx y C#

Eso quiere decir que para efecto de este ejemplo estan bien las rutas, es que habia leido en algunos post que no se debe usar ese tipo de rutas C:.....etc

ahora una preguntita mas.

si al subir un archivo desde asp.net con el control fileupdoad y quiero ponerlo en una carpeta en servidor
el el code behind de aspx tengo algo similar a esto.
using (BinaryReader reader = new BinaryReader(MyFile.PostedFile.InputStream))
{
byte[] image = reader.ReadBytes(MyFile.PostedFile.ContentLength);
}
y este se le manda a la capa media etc.

¿se toma bien ese archivo? ya q el codebeahin tengo entendido que corre en el servidor y el archivo a subir esta en la pc del cliente.

tambien lei que para q pueda subir archivos a una carpeta del servidor se tiene que dar derechos, como se los asigno?

Gracias y perdon por molestar tanto :P
  #4 (permalink)  
Antiguo 01/02/2011, 15:17
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Dudas con Rutas En Aspx y C#

Con este código puedes subir un archivo a tu servidor usando el file upload
Código C#:
Ver original
  1. if (this.fuImagen.HasFile)
  2.             {
  3.                 String path = String.Format("{0}\\media\\{1}\\", Request.MapPath("\\"), "archivos");
  4.  
  5.                 if (!System.IO.Directory.Exists(path))
  6.                 {
  7.                     System.IO.Directory.CreateDirectory(path);
  8.                 }
  9.  
  10.                 this.fuImagen.SaveAs(String.Format("{0}{1}", path, this.fuImagen.FileName));
  11.  
  12.             }
Siendo fuImagen el FileUpload, puedes reemplazar la ruta en la que quieres almacenar tu archivo en la variable path.

Saludos
  #5 (permalink)  
Antiguo 02/02/2011, 18:10
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Dudas con Rutas En Aspx y C#

mm perdon creo q soy malo explicandome.
en la pagina asp.net tengo un fileupload el cual tiene por codigo el siguiente.
string extension = Path.GetExtension(FileImag.PostedFile.FileName);

using (BinaryReader reader = new BinaryReader(FileImag.PostedFile.InputStream))
{
byte[] image = reader.ReadBytes(FileImag.PostedFile.ContentLength );
string fileName = "Recepcion" + extension;
if (ManejaArchivo.GuardarImagen(fileName, Carpeta.Text.Trim(), image) == true)
MsgFile.Text = "Se guardo correctamente.";
}

FileImag es el fileupload,
ManejaArchivo es la clase encargada de hacer el proceso.
carpeta es un texbox que indica la carpeta donde se guardara la imagen a subir.

la imagen la convierto a un arreglo de bytes por q se lo paso a una clase encargada de guardarla en la carpeta indicada. ya en esa clase hace el uso de rutas como en el principio del tema.

si codebehind corre en el servidor (runat=server) entoncs al hacer ese proceso de imagen a bytes estoy pensando que lo va buscar en donde esta corriendo es decir en el servidor, cuando la ruta del archivo a subir hace referencia a la pc del cliente en la intranet. ¿o me equivoco?
en el ejemplo del codigo veo q se guarda directo la imagen sin embargo eso quiero evitar, por eso uso una clase intermedia.
mil disculpas es q aun comienzo en la programacion como se daran cuenta :P y me confunde un poco eso de las rutas.
Gracias
  #6 (permalink)  
Antiguo 02/02/2011, 20:45
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: Dudas con Rutas En Aspx y C#

No debes de preocuparte por si esta en el cliente o en el servidor, el FileUpload hace el trabajo por ti, solo debes de darle la ruta donde quieres guardar el archivo.

Saludos
  #7 (permalink)  
Antiguo 03/02/2011, 15:18
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 11
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Dudas con Rutas En Aspx y C#

Ok entendido jeje mil disculpas.
la ruta se la asigno en la capa media tal y como en el principio.
Gracias por tenerme paciencia y ayudarme con mis dudas..

Etiquetas: aspx, rutas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:32.