首先,是的,我知道这可能是一个重复的问题,但实际上,我已经应用了所有可能的答案,但没有任何效果。
我想要的是将用户选择的图像转换为二进制格式,并且我使用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;
}
有关详细信息: 这就是我的网页表单的样子
因此,用户可以上传图像然后单击“保存图像”按钮以保存所选事件,此处网站应将图像转换为二进制格式。
关注:
我的“VS”项目中的“上传”文件夹是否可能没有刷新新选择的图像是空值背后的原因?
c:\目录中的权限是否可能导致此类错误?因为我正在为我工作的公司提供的机器上工作,在此之前我确实遇到了一些问题。
答案 0 :(得分: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);
}