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

Guardar imagen con FileUpload

Estas en el tema de Guardar imagen con FileUpload en el foro de ASPX (.net) en Foros del Web. Hola a todos, tengo un problema con el siguiente código ... y es que no me guarda la imagen del FileUpload y no tengo ni ...
  #1 (permalink)  
Antiguo 13/05/2010, 02:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Guardar imagen con FileUpload

Hola a todos, tengo un problema con el siguiente código ... y es que no me guarda la imagen del FileUpload y no tengo ni idea de porque puede ser, en la carpeta destino tengo activados los permisos de escritura ...

Gracias

protected void btAddImagen(object sender, EventArgs e)
{
string saveDir = @"\imagenes\";

string appPath = Request.PhysicalApplicationPath;


if (FileUpload1.HasFile)
{

string nombrearchivo = Server.HtmlEncode(AsyncFileUpload1.FileName);
string savePath = appPath + saveDir + nombrearchivo;
string extension = System.IO.Path.GetExtension(narchivo);

if(extension==".gif" || extension ==".jpg" || extension == ".png")
{
FileUpload1.SaveAs(savePath);
}
}

}
  #2 (permalink)  
Antiguo 13/05/2010, 12:47
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Guardar imagen con FileUpload

Esta linea no deberia ser

string extension = System.IO.Path.GetExtension(nombrearchivo);

Segundo para saber la extension tienes que decirle de donde, es decir darle una variable. Por ejemplo

if (FileUpload1.HasFile) {
string fileExt = null;
fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);


// If (fileExt = ".mp3") Then
try {
FileUpload1.SaveAs(apppath + FileUpload1.FileName);
Label1.Text = "File name: " + FileUpload1.PostedFile.FileName + "<br>" + "File Size: " + FileUpload1.PostedFile.ContentLength + " kb<br>" + "Content type: " + FileUpload1.PostedFile.ContentType;
} catch (Exception ex) {
Label1.Text = "ERROR: " + ex.Message.ToString();
}
} else {
Label1.Text = "Only .mp3 files allowed!";
}
  #3 (permalink)  
Antiguo 13/05/2010, 14:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Guardar imagen con FileUpload

efectivamente la línea era así ... la edité aquí por error.

De todas maneras sigo sin que funcione el código, ya que no llega a copiar el archivo en el directorio, haria falta algún permiso especial ? o simplemente con tener las propiedades de la carpeta para escritura seria suficiente?

Saludos y Gracias

Edito: Vale, he cometido un error bastante grave y era que FileUpload.HasFile() siempre me devolvia falso así que indagando un poco en la web he encontrado esto

"According to Microsoft documentation on the FileUpload class:

The FileUpload control is designed to be used only in postback scenarios and not in asynchronous postback scenarios during partial-page rendering. When you use a FileUpload control inside an UpdatePanel control, the file must be uploaded by using a control that is a PostBackTrigger object for the panel. "

Vamos que lo he añadido a los asyncpostback trigger y ahora ya me lanza una excepción bastante especifica, pero como soy novato en esto no sé lo que tendria que hacer ...

--------------------------------------------------------------------------------

El control con el id. ID 'FileUpload1' que se está registrando mediante RegisterAsyncPostBackControl o RegisterPostBackControl debe implementar INamingContainer, IPostBackDataHandler o IPostBackEventHandler.


Saludos

Última edición por johndoe1200; 13/05/2010 a las 14:29
  #4 (permalink)  
Antiguo 14/05/2010, 12:35
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Guardar imagen con FileUpload

Si esta dentro de un updatepanel deberias tener algo asi
<Triggers>
<asp:PostBackTrigger ControlID="chktipo1" />

</Triggers>

Igualmente no c si has provado el codigo que te puse, es un ejemplo totalmente funcional
  #5 (permalink)  
Antiguo 17/05/2010, 17:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Guardar imagen con FileUpload

Muchas gracias,

los códigos funcionaban bien los dos ... el problema era que me faltaba lo del postbacktrigger

Saludos

Etiquetas: fileupload, aspx
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 20:59.