
19/09/2014, 13:26
|
| | Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 12 años, 8 meses Puntos: 3 | |
Respuesta: Guardar archivo imagen Cita:
Iniciado por Drako_18 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!!! Cita:
Iniciado por Drako_18 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!!!
Gracias Drako
Vi que el error que tenia era por el asp lo resolvi con lo siguiente pero sucede que cuando agrego el archivo por primera vez no lo guarda si no hasta que doy el segundo clic en guardar ¿ tambien te paso eso? ¿Como lo resolviste?
Estoy usando C#
codigo de asp
Código ASP:
Ver original<asp:UpdatePanel ID="UpdatePanel" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional"> <ContentTemplate> <asp:FileUpload ID="FileUpload1" name="FileUpload1" runat="server"> </asp:FileUpload> <br /> </ContentTemplate> <Triggers> <asp:PostBackTrigger ControlID="rbnGuardar"/> </Triggers> </asp:UpdatePanel>
Gracias |