我编写了一个使用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;
}
}
我想通过在某些表单上使用LinkButton来实现此目的。我想通过按LinkButton选择一个文件(出现diagluebox)并将该文件保存到数据库中。有什么想法吗?
答案 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。