Foros del Web » Programando para Internet » ASPX (.net) »

subir archivos al servidor

Estas en el tema de subir archivos al servidor en el foro de ASPX (.net) en Foros del Web. Hola a todos!!!! Tengo un pequeño dilema y a quien me pueda a yudar se lo agradezco de antemano. Mi problema es el siguiente yo ...
  #1 (permalink)  
Antiguo 23/06/2006, 07:22
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta subir archivos al servidor

Hola a todos!!!!
Tengo un pequeño dilema y a quien me pueda a yudar se lo agradezco de antemano.
Mi problema es el siguiente yo tengo el siguente código para subir un archivo al servidor:

Código:
private void cmdImgSubirArchivo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
	if ((fleFicheros.Value != "") && (txtTituloArchivoDigital.Text != "")) 
	{				
		Archivo archivoDigital = new Archivo();
		string archivo = "";
		string formato = "";
		try
		{				
			string[] arInfo =new string[4];
			string[] arch = new string[4];
			char[] splitter  = {'\\'};
			char[] splitter2 = {'.'};
			arInfo = fleFicheros.Value.Split(splitter);
			for(int x = 0; x < arInfo.Length; x++)
			{
				archivo = arInfo[x];
			}
			arch = archivo.Split(splitter2);
			for(int y = 0; y < arch.Length; y++)
			{
				formato = arch[y];
			}
			//string ruta = Server.MapPath(".");			                if(Directory.Exists("c:\\Inetpub\\wwwroot\\SABIO\\ArchivosDigitales\\") == true)
			{
				lblIDArchivoDigital.Text = archivoDigital.Ingresar(txtTituloArchivoDigital.Text, System.Convert.ToInt32(cbolstFormatoDigital.SelectedValue));
				string DireccionURL = "c:\\Inetpub\\wwwroot\\SABIO\\ArchivosDigitales\\"+txtTituloArchivoDigital.Text+"."+formato;
				fleFicheros.PostedFile.SaveAs(DireccionURL);
                        			archivoDigital.IngresarURL(System.Convert.ToInt32(lblIDArchivoDigital.Text), txtTituloArchivoDigital.Text+"."+formato, System.Convert.ToInt32(lblIdentificador.Text));
				lblMensajeFile.Text = "El archivo: <b>" + archivo + "</b>, ha subido satisfactoriamente";
			}
			else
			{
				Directory.CreateDirectory("c:\\Inetpub\\wwwroot\\SABIO\\ArchivosDigitales\\");
				lblIDArchivoDigital.Text = archivoDigital.Ingresar(txtTituloArchivoDigital.Text, System.Convert.ToInt32(cbolstFormatoDigital.SelectedValue));
				string DireccionURL = "c:\\Inetpub\\wwwroot\\SABIO\\ArchivosDigitales\\"+txtTituloArchivoDigital.Text+"."+formato;
				fleFicheros.PostedFile.SaveAs(DireccionURL);
				archivoDigital.IngresarURL(System.Convert.ToInt32(lblIDArchivoDigital.Text), txtTituloArchivoDigital.Text+"."+formato, System.Convert.ToInt32(lblIdentificador.Text));
				lblMensajeFile.Text = "El archivo: <b>" + archivo + "</b>, ha subido satisfactoriamente";
			}						}
		catch (Exception exc) 
		{
			lblMensajeFile.Text = "Error al intentar guadar: <b>" + archivo + "</b>. Error:" + exc;
		}
		txtTituloArchivoDigital.Text = "";
		cargarArchivosDigitales(System.Convert.ToInt32(lblIdentificador.Text));
	}
}
cuando lo ejecuto cómo localhost en mi máquina me funciona perfectamente y me sube los archivos, pero yo tengo un servidor virtual (windows server 2003) montado con virtual pc y quiero llevar mi aplicación al servidor virtual cierto? yo en el servidor tengo 2 aplicaciones una de prueba y la original entonces quiero montarlo en la de prueba entonces en mi aplicación le cambio antes de llevarla al servidor la ruta que en el servdior sería c:\\Inetpub\\wwwroot\\SABIOPRUEBAS\\ArchivosDigita les\\ y compilo y llevo la aplicación al servidor.

El problema se me presenta cuando ejecuto la aplicación desde mi servidor virtual o hasta desde un explorador de otro equipo cuando le doy en el botón subir para subir los archivos valga la redundancia me sale el siguiente error:

Error al intentar guadar: foto cronograma dias.doc. Error:System.UnauthorizedAccessException: Access to the path "c:\Inetpub\wwwroot\SABIOPRUEBAS\ArchivosDigitales \hhh.doc" is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String str) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at SABIO.UserControls.IngresoMonografia.cmdImgSubirAr chivo_Click(Object sender, ImageClickEventArgs e) in c:\inetpub\wwwroot\sabio\usercontrols\ingresomonog rafia.ascx.cs:line 3917

y la verdad no entiendo el porque de este error.

Bueno a quién me pueda ayudar se lo agradezco de antemano.
__________________
Kelly Johana:si:
  #2 (permalink)  
Antiguo 23/06/2006, 19:13
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Antes de revisar tu codigo, me gustaria saber si le asignastes los permisos de lectura y escritura a los usuarios ASPNET y IUSR_MISERVER.



slds.
  #3 (permalink)  
Antiguo 27/06/2006, 06:51
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Eso fue lo último que realice, pero mi pregunat es, debo darle los permisos sobre la carpeta completa de la palicación o sólo a la carpeta donde va a realizar la escritura???
__________________
Kelly Johana:si:
  #4 (permalink)  
Antiguo 27/06/2006, 20:51
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Tan solo es necesario al directorio donde vas a realizar la escritura del archivo.


slds.
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 08:26.