使用链接按钮上传文件

时间:2014-01-28 11:22:57

标签: asp.net

我编写了一个使用FileUpload控件将文件上传到数据库的过程。

 bytes = new byte[] { };
    filename = Path.GetFileName(FUProfile.PostedFile.FileName);
    contentType = FUProfile.PostedFile.ContentType;
    fileLengthInKB = FUProfile.PostedFile.ContentLength / 102400;

    fileName = FUProfile.PostedFile.FileName;
    fileExtension = System.IO.Path.GetExtension(fileName);
    fileMimeType = FUProfile.PostedFile.ContentType;

    if (FUProfile.HasFile)
    {
        try
        {
            if (matchExtension.Contains(fileExtension) && matchMimeType.Contains(fileMimeType))
            {
                if (fileLengthInKB <= 102400)
                {
                    using (Stream fs = FUProfile.PostedFile.InputStream)
                    {
                        using (BinaryReader br = new BinaryReader(fs))
                        {
                            bytes = br.ReadBytes((Int32)fs.Length);
                            clsProjects.UploadedProfile = bytes;
                            clsProjects.UploadedProfileCT = contentType;
                            clsProjects.UploadedProfileName = filename;
                        }
                    }
                }
                else
                {
                    lblResult.Text = "Please choose profile file less than 1MB";
                }
            }
            else
                {
                    lblResult.Text = "Please choose only pdf profile file.";
                }
            }
        catch (Exception ex)
        {
            lblResult.Text = "Upload status: The profile file could not be uploaded. The following error occured: " + ex.Message;
        }
    }

我想通过在某些表单上使用LinkBut​​ton来实现此目的。我想通过按LinkBut​​ton选择一个文件(出现diagluebox)并将该文件保存到数据库中。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你想要这样

ClickOn Event添加到您的LinkButton

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
style="font-weight: 700; font-size: 8pt;" 
OnClick="ENameLinkBtn_Click" />

然后在click event

protected void ENameLinkBtn_Click(object sender, EventArgs e)
{
   ....
   ....
}

答案 1 :(得分:0)

基本上,您想要做的事情(跳过常见的FileUpload组件)具有潜在的危险性。本机浏览器fileupload组件使用操作系统组件来选择文件(这也是每个操作系统上看起来不同的原因),所以有人无法在后台绕过本地磁盘中的某些不需要的文件(例如使用javascript)并让你上传它到服务器。如果您想要一些更好的上传组件,请尝试使用一些Ajax file uploader