1

我正在尝试将图像作为varbinary数据类型上传到我的数据库中。

问题是我还想将字节数组中的图像数据存储到我的解决方案中存在的名为TextFile.txt. 但我不能这样做。我希望它在将图像插入数据库的同时写入数据。

我有这段代码,我可以将图像插入数据库,但不能将字节数据插入文本文件。

protected void Button1_Click(object sender, EventArgs e)   
{
    if (!this.FUImage.HasFile)
    {
        this.Label1.Text = "Please select a file to Uplaod";
        return;
    }

    MemoryStream ms = new MemoryStream();
    this.FUImage.PostedFile.InputStream.CopyTo(ms);
    var bytes = ms.ToArray();
    ms.Close();
    var image = new Image() {
        Name = this.FUImage.PostedFile.FileName,
        FileBinary = bytes
    };
    SaveImageData(image);
}
4

3 回答 3

0

使用二进制写入器写入字节数据。

MemoryStream ms = new MemoryStream();  
        this.FUImage.PostedFile.InputStream.CopyTo(ms);   
        var bytes = ms.ToArray();   
        ms.Close();   
        var image = new Image()   
        {   
            Name = this.FUImage.PostedFile.FileName,   
            FileBinary = bytes   
        };  



 using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))  
        {
            using (BinaryWriter w = new BinaryWriter(fs))  
            {  
                for (int i = 0; i < 11; i++)  
                {  
                    w.Write(bytes);  

                }  
            }  
        }  
于 2012-09-19T10:55:32.200 回答
0

方法 SaveImageData 有什么作用?是在这里你想写文件吗?

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/005f0060-09c1-4ba9-8a40-cc7fa7284320

于 2012-09-19T10:40:43.527 回答
0

您应该首先将byte数组转换为base64StringusingConvert.ToBase64String Method (Byte[])方法,然后将字符串写入任何文本文件。

var bytes = ms.ToArray();
string imageString = Convert.ToBase64String Method ();
System.IO.File.WriteAllText (@"D:\path.txt", imageString );
于 2012-09-19T11:01:22.950 回答