2017-01-02 79 views
0

首先,是的,我知道這可能是一個重複的問題,但實際上,我應用了所有可能的答案,但沒有任何工作。將圖像的完整路徑轉換爲二進制

我想是由用戶爲二進制格式選擇的圖像轉換,並且我使用asp.net/c#做了這樣的方法。 看看我的代碼第一次做到這一點:

if (FileUpload1.HasFile) 
     { 
      pressNumberOfTimes++; 
      string strname = Path.GetFileName(FileUpload1.PostedFile.FileName); 
      lbl_homeCarouselAdd.ID = "lbl_homeCarouselAdd" + pressNumberOfTimes; 
      strDiv.Append(string.Format(strname) + ","); 
      FileUpload1.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/upload/") + strname); 
      string fullImagePath = HttpContext.Current.Server.MapPath("~/upload/") + strname; 

      byte[] imgdata = File.ReadAllBytes(fullImagePath); 

      var a = String.Join(",", lbl_homeCarouselAdd.Text += strDiv.ToString()); 

從我在這個網站上的答案和別人看到的圖像轉換爲二進制文件使用此代碼:

byte[] imgdata = File.ReadAllBytes(fullImagePath); 

我已用於我的代碼。 但是,我所得到的只是二進制的空值,而「fullImagePath」變量則保存所選圖像的全部區域。

我也用下面的方法,但它給了我同樣空的結果:

public static byte[] ImageToBinary(string _path) 
    { 
     FileStream fS = new FileStream(_path, FileMode.Open, FileAccess.Read); 
     byte[] b = new byte[fS.Length]; 
     fS.Read(b, 0, (int)fS.Length); 
     fS.Close(); 
     return b; 
    } 

欲瞭解更多信息: 這是我的網頁形式看起來像

enter image description here

因此,用戶可以上傳圖片,然後點擊「保存圖片」按鈕以保存選定的事件,這裏網站應該將圖片轉換爲二進制格式。

關注:

  1. 有沒有可能是「上載」在我的「VS」項目文件夾不會與新選定的圖像刷新的背後是空值的原因?

  2. c:\目錄中的權限是否有可能導致此類錯誤?因爲我正在爲我工​​作的公司開發一臺機器,在此之前我確實遇到過一些問題。

+0

檢查〜/上傳/文件夾在你的項目或者你的目標上傳系統可用。 – manny

+0

是的它是可用的 – user3599431

+0

_「我得到的只是一個空值的二進制」_ - 這是什麼意思_exactly_,你是如何確定的?之後你似乎沒有對「imgdata」變量做任何事情。 – CodeCaster

回答

0
if(FileUpload1.HasFile) 
{ 
      string filename = Path.GetFileName(FileUpload1.PostedFile.FileName); 
      string extension = Path.GetExtension(filename); 
      string contentType = FileUpload1.PostedFile.ContentType; 
      HttpPostedFile file = FileUpload1.PostedFile; 
      byte[] imgdata= new byte[file.ContentLength]; 
      file.InputStream.Read(imgdata, 0, file.ContentLength); 
} 
+0

我在'imgdata'中得到空結果 – user3599431

相關問題