2009-08-29 69 views
7

El método SaveAs está configurado para requerir una ruta rooteada, y la ruta '~ \ images \ 594083964.jpg 'no está rooteado. Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.El método SaveAs está configurado para requerir una ruta rooteada, y la ruta '~ \ images \ 594083964.jpg' no está rooteada

Detalles de la excepción:

System.Web.HttpException: The SaveAs method is configured to require a rooted path, and the path '~\images\594083964.jpg' is not rooted.

Fuente de error:

Line 27:  { 
Line 28: 
Line 29:   fu1.SaveAs(@"~\\images\\" + i + fu1.FileName.Substring(fu1.FileName.Length - 4, 4)); 
Line 30: path = "~\\images\\"+i + fu1.FileName.Substring(fu1.FileName.Length-4,4); 
Line 31: } 

Archivo de origen: E: \ People \ Ravi \ nuevos datos \ WebSite1 \ signup.aspx.cs Línea: 29

+0

Y su pregunta es? – hirschhornsalz

+10

Creo que puede suponer que no desea el error;) – MPritchard

Respuesta

21

La ruta a la que está guardando es una URL relativa. Debe guardar en una ruta de archivo local (o en una ruta de red completa).

Probar:

string relativePath = @"~\images\"+ i + Path.GetExtension(fu1.FileName); 
fu1.SaveAs(Server.MapPath(relativePath)); 

(Path.GetExtension (cadena) se encargará de las extensiones de archivo que no son 3 caracteres también)

+0

Aunque debe usar/en la ruta relativa, no \. – Guffa

+0

@Guffa ¿Estás seguro de que hace alguna diferencia? – MPritchard

+1

El método puede ser lo suficientemente bueno como para convertir los separadores incorrectos a los correctos, pero no hay ninguna razón para confiar en ese comportamiento (que podría cambiar) cuando puede usar fácilmente los separadores correctos. – Guffa

Cuestiones relacionadas