2012-09-19 2 views
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); 
} 

답변

0

먼저 Convert.ToBase64String Method (Byte[]) 방법을 사용하여 base64String으로 byte 배열을 변환 한 후 텍스트 파일에 문자열을 작성해야합니다.

var bytes = ms.ToArray(); 
string imageString = Convert.ToBase64String Method(); 
System.IO.File.WriteAllText (@"D:\path.txt", imageString); 
+0

하지만 텍스트 파일에 쓰기위한 코드를 작성하는 방법을 모르겠지만 내 코드는 바이너리로만 데이터를 변환하지만 텍스트 파일에는 쓸 수 없습니다 – user1682768

+0

업데이트를 확인하십시오 ... –

+0

wait i 귀하의 업데이트를 구현하려고합니다 – user1682768

0

SaveImageData는 어떤 기능을합니까? 여기에 당신이 파일 맞추기를 시도하고 있습니까?

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

+0

사실이 메서드는 다른 곳에서 구현하므로 이미지 데이터를 이진 파일로 가져 와서 업로드 할 때 텍스트 파일에 저장하려고합니다. 어떤 도움이 필요합니까? – user1682768

+0

다른 메서드 인 SaveBinaryToFile()을 만들고 bytes 변수를 아래로 보낼 수 있습니까? C# 4.x를 사용하는 경우 작업 라이브러리를 사용하여 두 작업을 모두 수행 할 수 있습니다. http://blogs.msdn.com/b/csharpfaq/archive/2010/06/01/parallel-programming-in-net- framework-4-getting-started.aspx – christiandev

+0

실제로 코드를 편집 할 수 있습니까? asp에 새로 왔습니다. C# 4.0을 사용하고 있습니다. – user1682768

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); 

       } 
      } 
     } 
+0

목적에 맞게 코드를 편집 할 수 있습니까? – user1682768

관련 문제