如何使用AjaxFileUpload将图像文件流式传输到SQL数据源?

时间:2013-03-08 16:30:43

标签: c# sql-server sql-server-2008-r2 asp.net-ajax ajaxcontroltoolkit

我想使用AjaxFileUpload将多个文件上传到SQL数据库。我有一个用于上传单个文件的方法;在aspx页面中:

<asp:FileUpload ID="file_Image" runat="server"/>

在aspx.cs页面中:

protected void UploadFile(object sender, EventArgs e)
{
    FileUpload FileUpload1 = file_Image;

    // Read the file and convert it to Byte Array
    string filePath = file_Image.PostedFile.FileName;
    string filename = Path.GetFileName(filePath);

    if (FileUpload1.HasFile && FileUpload1.PostedFile != null)
    {
        Stream fs = file_Image.PostedFile.InputStream;
        BinaryReader br = new BinaryReader(fs);
        Byte[] bytes = br.ReadBytes((Int32)fs.Length);}}

但是,如何为AjaxFileUpload使用类似的东西,或者甚至可以从Ajax控件流式传输这样的图像数据?万分感谢您分享您的知识!

1 个答案:

答案 0 :(得分:1)

[请参阅AjaxFileUpload]中的新AjaxToolKit控件[1] http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AjaxFileUpload/AjaxFileUpload.aspx

这个新的AjaxFileUpload控件支持一次上传多个文件。但它有一些限制,IE10或Chrome最新版本支持此。

这是非常可靠的,我正在使用它。

将AjaxFileUpload文件内容转换为sql varbinary数组的简单方法:

protected void AjaxFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
byte[] image = e.GetContents();
}