Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/09/2014, 11:55
Avatar de Drako_18
Drako_18
 
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años
Puntos: 16
Respuesta: Guardar archivo imagen

Buenas compañero,

Acabo de probar un ejemplo sencillo y me ha funcionado perfectamente. Comprueba que por algún UpdatePanel no esté recargando la página sin tenerlo que hacer y ahí estés perdiendo el valor del FileUpload...

Si quieres, prueba en un proyecto a parte para ver el ejemplo, yo he puesto esto:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication1._Default" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload runat="server" ID="file" />
<asp:Button runat="server" ID="btnGuardar" />
</div>
</form>
</body>
</html>

Y en el VB:
Public Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'No tengo nada que precargar.
End Sub


Private Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
Dim sFichero As String = Me.file.FileName
Me.file.PostedFile.SaveAs(Server.MapPath("~/") & Me.file.FileName)
End Sub
End Class

En mi caso utilizo el directorio principal porque no quiero crearme ninguna carpeta para la prueba, pero sería lo mismo.... Y como es una prueba y voy con el depurador paso a paso, prefiero no comprobar en código el HasFile, lo veo en la propia depuración.

Si el ejemplo sencillo te funciona, es cuestión de ver qué está recargando la página antes de que accedas al valor del FileUpload.


Un saludo!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)