Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    problema download allegati

    ciao a tutti,
    ho creato un applicazione che, tra le altre cose, permette al cliente di caricare dei files
    in una cartella del server.

    Il problema è che, per ragioni che non dipendono da me, l'applicativo deve scrivere in una determinata cartella del file system che non si trova all'interno dell'applicazione (quindi inutile usare Server.MapPath).

    Fin qui tutto bene, gli allegati vengono salvati correttamente nel percorso specificato nel profilo utente (ad ex: C:\Allegati).

    Il problema nasce quando l'utente cerca di aprire l'allegato!
    L'allegato si apre ma ha un nome completamente distorto (ex: C__nomeallegato.png) e i lfile risulta corrotto (in pratica viene scaricato un file vuoto).

    Qualcuno sa dirmi come posso correggere il problema?

    ecco il codice della pagina che si occupa di far scaricare l'allegato (il nome del file viene passato via query string).

    codice:
        protected void Page_Load(object sender, EventArgs e){
            string userPath = (string)Session["userPath"];
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("content-disposition", "inline; filename=" + userPath + Request.QueryString["file"]);
            Response.Charset = "";
        }
    sono bloccato aiutatemi
    grazie
    citrus

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    beh mancono un po di cose...
    innanzi tutto non ce nulla che gli dica di prendere un file, nel tuo codice!

    ecco quello che dovresti fare:
    1) mettere un header Content-Length con la lunghezza in byte del file
    2)Fare un bel Response.Clear();
    3)invoce il metodo Response.TransmitFile(pathDelFile)
    4)invocare Response.End();

    Vediemo di correggere questa riga:
    Response.AddHeader("content-disposition", "inline; filename=" + userPath + Request.QueryString["file"]);

    fileName è il nome che viene proposto all'utente quando gli viene chiesto di salvare il file. Infine per fare un allegato usa content-disposition: attachment. in sostanza, la riga diventa:

    Response.AddHeader("content-disposition", "attachment; filename=" + Request.QueryString["file"]);


    infine questa riga TOGLILA
    Response.Charset = "";

    Spero di averti aiutato!!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    Sei stato grande!
    mi ero veramente perso in un bicchier d'acqua...
    grazie mille per l'aiuto!
    citrus

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.