webForumDet fria alternativet

Nerladdningsknapp, fungerar bara delvis

.NET

1 svar · 366 visningar · startad av zebs

Medlem sedan mars 20081 inlägg
Frågan#1

Hejsan!

Har en funktion i min Default.aspx.cs som gör att en användare kan ladda ner en fil genom att trycka på en knapp, till skillnad från att köra en "spara som" genom en länk.

Det fungerar jättebra för en knapp/en fil, men när jag lägger till en knapp till för en annan fil så fungerar det inte, utan jag hamnar på en "sidan kan inte visas" i explorer. Vad kan det vara för fel? Filen finns på den platsen som jag anger. Det fungerar alltså om jag använder samma fil för båda knapparna. :q

I Default.aspx:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Första knappen" />

<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Andra knappen" />

Och funktionen i Default.aspx.cs:

public partial class _Default : System.Web.UI.Page 
{
    private void DownLodFile(string FileName)
    {
        try
        {
            string path = FileName;   // here set the path to root directory
            if (path != "")
            {
                path = Server.MapPath(path);
                System.IO.FileInfo file = new System.IO.FileInfo(path);
                if (file.Exists)
                {
                    Response.Clear();
                    Response.ClearContent();
                    Response.ClearHeaders();

                    Response.ContentType = "application\\octet-stream";
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                    Response.WriteFile(file.FullName);
                    Response.End();
                }
                else
                    Response.Write("<script language=javascript>alert('This ass does not exist.');</script>");
            }
            else
                Response.Write("<script language=javascript>alert('This ass does not exist.');</script>");
        }
        catch (Exception ex)
        {
            Response.Write("<script language=javascript>alert('" + ex.Message + "');</script>");
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        DownLodFile("/fil1.rar"); // your file name to download
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        DownLodFile("/fil2.rar"); // your file name to download
    }

Och detta fungerar alltså bara på knapp 1, inte på 2:an. Någon som ser ett fel?

Medlem sedan dec. 19996 721 inlägg
#2

Kör sidan i Firefox, eller stäng av "friendly HTTP errors" i IE.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)