Member 13427032 Ответов: 1

Загрузка файла при нажатии другой кнопки


у меня возникли проблемы с моим кодом всякий раз, когда я нажимаю кнопку linkbutton(download), чтобы загрузить загруженный файл, и когда я нажимаю другую кнопку на странице, он все равно загружает файл, который я загрузил, и вот мой код

lblFile.Text = Issue.FileName;

        if (lblFile.Text != "")
        {
            trAttachedFile.Visible = true;
            lbtnDownload.PostBackUrl = "~/Download.aspx?file=" + lblFile.Text;
        }
        else
        {
            trAttachedFile.Visible = false;
        }




А вот и код загрузки.aspx позади



protected void Page_Load(object sender, EventArgs e)
    {

        if (!string.IsNullOrEmpty(Request.QueryString["file"]))
        {
            DownloadID = Request.QueryString["file"];
            if (StartDownload() == true)
            {
                lblMessage.Text = "Your download should start shortly";
            }
            else
            {
                lblMessage.Text = "Download File does not exist";
            }
        }

private bool StartDownload()
    {
        if (DownloadID != "")
        {
            string downloadPath = WebConfigurationManager.AppSettings["SubPic"].ToString() + DownloadID;
            FileInfo downloadFile = new FileInfo(downloadPath);

            if (downloadFile.Exists)
            {
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + downloadFile.Name);
                Response.AddHeader("Content-Length", downloadFile.Length.ToString());
                Response.ContentType = "application/octet-stream";
                Response.WriteFile(downloadFile.FullName);
                Response.End();
                return true;
            }
        }
        return false;
    }




а вот кнопка связи

<tr runat="server" id="trAttachedFile">
            <td>
                <asp:Label runat="server" Text="File Attachment:" />
            </td>
            <td colspan="2">
                <asp:Label runat="server" ID="lblFile" />
                 
                <asp:LinkButton runat="server" Text="Download" ID="lbtnDownload" CssClass="lbtnDownload" />
            </td>
            <td> </td>
        </tr>


Что я уже пробовал:

Любые предложения, ребята, по моему коду. Заранее спасибо

Richard Deeming

Репост
Это тот же самый (решенный) вопрос, который вы задавали на прошлой неделе:
https://www.codeproject.com/Questions/1208692/When-clicking-the-linkbutton-download-and-I-click[^]

Ответ не изменился за последние 9 дней!

1 Ответов

Рейтинг:
12

GKP1992

Не записывайте логику загрузки в ваше событие Page_Load, так как оно будет вызываться каждый раз, когда страница загружается, и в соответствии с вашей логикой будет загружаться файл, если запрос имеет ключ "File".

Запишите логику в кнопку LinkButton.Нажмите событие lbtnDownload. Это ограничит действие загрузки событием нажатия кнопки и не будет загружаться каждый раз, когда ваша страница загружается.