2017-01-11 1 views
-1

바이트 배열을 mysql 열 유형 mediumblob에 업로드하려고합니다. 업로드 후에 필자는 파일을 다운로드하여 메모장에서 볼 때 크기가 킬로 바이트임을 알 수 있습니다. 단지 빈 공백입니다. 여기byte [] mysql에 업로드 [] BLOB에 데이터가 없습니다.

내가 이미지 PNG 파일에서 내 바이트를 얻고있다 방법은 다음과 같습니다 내 배열은 공백을 포함하는 이유

private async void artworkFileBTN_Click(object sender, RoutedEventArgs e) 
    { 
     FileOpenPicker openPicker = new FileOpenPicker(); 
     openPicker.ViewMode = PickerViewMode.Thumbnail; 
     openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 

     openPicker.FileTypeFilter.Add(".png"); 
     artworkfile = await openPicker.PickSingleFileAsync(); 
     if (artworkfile != null) 
     { 
      artworkSet = true; 
      //var stream = await musicfile.OpenAsync(Windows.Storage.FileAccessMode.Read); 
      artworkFileBTN.Content = artworkfile.DisplayName; 
      var stream = await artworkfile.OpenAsync(FileAccessMode.Read); 
      var streamBytes = await artworkfile.OpenStreamForReadAsync(); 
      var bytes = new byte[(int)streamBytes.Length]; 
      ArtworkRawData =bytes; 

     } 
     else 
     { 
      // 
     } 
    } 

사람은 말해 줄 수?

+0

나는이 지역에서 뭔가를 추측하고 있습니다 ... 나는 길이를 설정하고 있는데 어떻게 설정합니까? var streamBytes = artworkfile.OpenStreamForReadAsync();를 대기합니다. var bytes = 새 바이트 [(int) streamBytes.Length]; ArtworkRawData = bytes; – Brizzler

답변

0

해결되었습니다.

byte[] result; 
      using (Stream streambytes = await artworkfile.OpenStreamForReadAsync()) 
      { 
       using (var memoryStream = new MemoryStream()) 
       { 

        streambytes.CopyTo(memoryStream); 
        result = memoryStream.ToArray(); 
       } 
      } 


      ArtworkRawData = result; 
관련 문제