在ASP.NET中执行文件上载而不显示上载控件

时间:2012-09-13 03:23:03

标签: asp.net file-upload

我正在使用VS2010,C#开发一个ASP.NET Web应用程序,当我的用户点击超链接(或标签,它没有区别)时我想显示文件上传控件,然后上传操作应该执行,我上传控件没有问题,但目前我有一个隐形上传控件,在我的超链接onclick函数中使用JavaScript显示它,上传控件显示但我不知道如何获取上传的文件,如何我应该执行此操作吗?我想在用户点击标签或超链接时显示上传文件对话框,然后他们可以选择他们的文件并上传文件,最后我应该能够在服务器端处理这个文件(我要去获取文件流并将其存储在SQL中,我有哪些选择? JQuery的?阿贾克斯? JavaScript的?或其他什么?

我的JavaScript函数:

function OpenFile()
{
document.getElementById("<%=fu.ClientID%>").style.display="";
var result = document.getElementById("<%=fu.ClientID%>").click();
document.getElementById("<%=fu.ClientID%>").style.display="none";
return false;
}

和我的标记:

<asp:FileUpload ..... style="display:none;"....>
    <ASP:hyperlink onclick="OpenFile();"...../>

2 个答案:

答案 0 :(得分:1)

选择文件并执行PostBack后,您可以按如下方式访问该文件

<asp:FileUpload ID="FileUpload1" ..... style="display:none;"....>

使用PostedFile

访问基础发布的文件
    var fileLen = FileUpload1.PostedFile.ContentLength;
    Byte[] Input = new Byte[fileLen];
    myStream = FileUpload1.FileContent;
    myStream.Read(Input, 0, fileLen);

或者只是将其保存在服务器上:

FileUpload1.SaveAs(savePath);

答案 1 :(得分:1)

我想推荐 uploadify ,它是用flash构建的。使用jQuery和asp.net非常简单易用。

Demo依赖php上传,虽然它可以用于任何平台,包括asp.net。 您必须编写一个处理程序文件来执行上传,流式传输和SQL存储部分。

检查这些答案