2017-01-02 47 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

相关问题