Загрузка файла в asp.net C # - ошибка нулевой ссылки

1

Я пытаюсь использовать элемент управления загрузкой файлов для загрузки, а затем загружать файл с помощью Asp.net С#, но он дает мне исключение ссылки Null (ссылка объекта не установлена в экземпляр объекта). Может ли кто-нибудь помочь мне в этом, где я делаю ошибку?

Вот мой код aspx:

<div>
      <table style="padding: 20px;">
            <tr>
                <td>
                    <asp:Label ID="lblFilename" runat="server" Text="Browse:"></asp:Label>
                </td>
                <td>
                    <asp:FileUpload ID="fileUpload1" runat="server" />
                </td>
            </tr>
            <tr>
                <td>
                    &nbsp;
                </td>
                <td>
                    &nbsp;
                </td>
            </tr>
            <tr>
                <td>
                    <asp:LinkButton ID="OnLnkUpload" runat="server" OnClick="OnLnkUpload_Click" Font-Underline="False">Upload</asp:LinkButton>
                </td>
                <td>
                    <asp:LinkButton ID="OnLnkDownload" runat="server" OnClick="OnLnkDownload_Click" Font-Underline="False">Download</asp:LinkButton>
                </td>
            </tr>
        </table>
    </div>

Вот мой код за файлом:

string filename = string.Empty;

    protected void btnUpload_Click(object sender, EventArgs e)
    {

    }

    protected void OnLnkUpload_Click(object sender, EventArgs e)
    {
        filename = Path.GetFileName(fileUpload1.PostedFile.FileName);
        fileUpload1.SaveAs(Server.MapPath("Files/" + filename));

        Response.Write("File uploaded sucessfully.");
        lblFilename.Text = "Files/" + fileUpload1.FileName;
    }

    // To download uplaoded file
    protected void OnLnkDownload_Click(object sender, EventArgs e)
    {
        if (lblFilename.Text != string.Empty)
        {
            if (lblFilename.Text.EndsWith(".txt"))
            {
                Response.ContentType = "application/txt";
            }
            else if (lblFilename.Text.EndsWith(".pdf"))
            {
                Response.ContentType = "application/pdf";
            }
            else if (lblFilename.Text.EndsWith(".docx"))
            {
                Response.ContentType = "application/docx";
            }
            else
            {
                Response.ContentType = "image/jpg";
            }

            string filePath = lblFilename.Text;

            Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
            Response.TransmitFile(Server.MapPath(filePath));
            Response.End();

        }
    }
Теги:
file-upload

2 ответа

0

вам нужно проверить, что элемент управления загрузкой условия содержит файл или нет. как ниже...

if (this.FileUpload1.HasFile)
{
    //Block of Code
}
0

Попробуйте что-то вроде следующего в моем случае, я добавил кнопку и после выбора файла, который я хочу загрузить, у меня есть этот метод в событии с нажатием кнопки

protected void Button1_Click(object sender, EventArgs e)
{
    if (this.FileUpload1.HasFile)
    {
        this.FileUpload1.SaveAs(targetFolder + this.FileUpload1.FileName);
        lblResult.Visible = true;
        lblResult.Text = string.Format("{0} Successfully Uploaded", this.FileUpload1.FileName);
    }
}

код aspx

<div class="qsf-fb-group qsf-fb-attachments">
    <strong>Stappings UpLoad</strong>
    <asp:FileUpload ID="FileUpload1" runat="server" ToolTip="Browse for files on local Machine" />
    <asp:Button ID="Button1" runat="server" Text="UpLoad Selected File" onclick="Button1_Click" ToolTip="Click to Upload File to Server" />
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню