ASP.NET - ¿no encuentra el archivo?

 
Vista:

¿no encuentra el archivo?

Publicado por Silvia (185 intervenciones) el 18/12/2005 12:32:08
Os explico yo tengo este codigo que lo que hace es localizar la ruta en el disco duro local donde se encuentra la imagen antonio.jpg y despues la guarda con otro nombre y la reduce de tamaño.
Bien localmente funciona perfecto con este codigo:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ruta As String
ruta = "C:\ftptomas\IMAGENES\antonio.jpg"
Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(ruta)

TextBox1.Text = (original.Size.Width).ToString
TextBox2.Text = (original.Size.Height).ToString
Dim B As Integer
Dim C As Integer
Select Case TextBox1.Text
Case Is > TextBox2.Text
B = 400
C = 300
Case Is < TextBox2.Text
B = 300
C = 400
Case Is = TextBox2.Text
B = 400
C = 400

End Select
Dim imagen As New System.Drawing.Bitmap(original, B, C)
Dim grafico As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(imagen)
imagen.Save"C:\ftptomas\imagenes\hel9jo9u.jpg",System.Drawing.Imaging.ImageFormat.Jpeg)

end sub

Pero cuando subo esto al servidor me da el siguiente error:
Server Error in '/' Application.
--------------------------------------------------------------------------------

C:\ftptomas\IMAGENES\antonio.jpg
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: C:\ftptomas\IMAGENES\antonio.jpg

Source Error:

Line 9: ruta = "C:\ftptomas\IMAGENES\antonio.jpg"
Line 10: ' Dim original As New System.Drawing.Bitmap(ruta)
Line 11: Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(ruta)
Line 12:
Line 13: TextBox1.Text = (original.Size.Width).ToString


Source File: d:\users\madeinspain1-1\Default.aspx.vb Line: 11

Stack Trace:

[FileNotFoundException: C:\ftptomas\IMAGENES\antonio.jpg]
System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement) +380066
System.Drawing.Image.FromFile(String filename) +6
_Default.Button1_Click(Object sender, EventArgs e) in d:\users\madeinspain1-1\Default.aspx.vb:11
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

No se porque da este error si el archivo local sigue existiendo
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿no encuentra el archivo?

Publicado por thessen (89 intervenciones) el 21/12/2005 10:49:02
Pero existe en el cliente o existe en el servidor? Porque tal y como lo tienes el archivo lo esta buscando en el servidor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿no encuentra el archivo?

Publicado por silvia (185 intervenciones) el 21/12/2005 15:50:45
existe en el cliente es decir en mi disco duro local
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿no encuentra el archivo?

Publicado por silvia (185 intervenciones) el 21/12/2005 15:52:54
Te explico yo quiero hacer una aplicacion en la cual puedas seleccionar una imagen jpg del disco duro del ordenador donde te hayas conectado a mi aplicacion. Que una vez selecciones una foto, esta la reduzcas a un tamaño 400 X 300 y luego la subas al servidor para ser visualizada.
Para ello utilizo este codigo el cual funciona perfectamente en mi servidor local.
Tu me dijistes que son cosas de los permisos de acceso que tenga esa carpeta, pero esa carpeta ya tiene todos los permisos dados de lectura, escritura, acceso asp.net, en fin de todo tipo, incluso me salen mensajes de windows que me dice que hacer eso es peligroso.
Abajo veras el codigo para seleccionar una imagen del disco duro y reducirla de tamaño y mas abajo el codigo para subir un archivo imagen a mi servidor.
Gracias de todos modos.
Si el problema como tu dices es de permisos, ¿porque si que me funciona el codigo para subir archivos de mi disco duro local al servidor?, pero en cambio el codigo de transformar la foto a un tamaño mas pequeño me dice que no encuentra el archivo cuando si que existe?.
En fin yo ya estoy desquiciado llevo mas de diez dias con el mismo problema , se ve que no se puede hacer asi.

Partial Class _Default
Inherits System.Web.UI.Page
' codigo para convertir una imagen jpg de gran tamaño a dimensiones 400x 300 .
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ruta As System.String
ruta = (File1.PostedFile.FileName)
Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(ruta)
Dim imagen As New System.Drawing.Bitmap(original, 400, 300)
Dim grafico As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(imagen)
imagen.Save(Server.MapPath("App_Data\imagenes\uno1.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
' Codigo para subir al servidor un archivo imagen seleccionado en mi disco duro.
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
If Not (File1.PostedFile Is Nothing) Then
Try
File1.PostedFile.SaveAs(Server.MapPath("App_Data\imagenes\Camello.jpg"))

Catch ex As Exception

End Try
End If

End Sub
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿no encuentra el archivo?

Publicado por thessen (89 intervenciones) el 22/12/2005 13:08:36
Hombre, no lo he probado. Pero creo que tu problema es que intentas abrir el archivo que has subido al servidor con la ruta del archivo en el cliente :

Dim ruta As System.String
ruta = (File1.PostedFile.FileName)
Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(ruta)

Creo que deberias subir primero el archivo a tu servidor y luego convertirlo, mas o menos asi:

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
try
' Ruta del fichero temporal
Dim rutaTmp as string = "C:\Temp\image.jpg" en el disco duro del servidor.
' Subes la imagen a tu servidor.
File1.PostedFile.SaveAs (rutaTmp)

' Abres la imagen desde el archivo temporal en tu servidor.
Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(rutaTmp)

' La conviertes y haces lo que tengas que hacer con ella.
Dim imagen As New System.Drawing.Bitmap(original, 400, 300)
Dim grafico As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(imagen)

imagen.Save(Server.MapPath("App_Data\imagenes\uno1.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)

' Borras el archivo temporal de tu servidor.
System.IO.File.Delete(rutaTmp)
catch ex as exception
' Aqui gestión de errores.
end try
End Sub
End Class

Espero que te sirva. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar