asp:FileUpload 控件获得二进制
环境:asp.net 2.0html: 上传文件:
<asp:FileUpload ID="fileUp" runat="server" Width="393px" />
cs:
//保存图片到数据库
protected byte[] getBinaryForImg()
{
System.Web.HttpPostedFile upFile=fileUp.PostedFile;
int fileLength = upFile.ContentLength;//记录文件的长度
byte[] fileBytePicture = new byte[fileLength];//用图片的长度来初始化一个字节数组存储临时的图片文件
Stream fileStream = upFile.InputStream;//建立文件流对象
fileStream.Read(fileBytePicture, 0, fileLength);
}
只能获得gif的数据,jpg的都是0,
下面的方法更是垃圾,什么图片都获取不到,都是0
public byte[] UpLoadFile()
{
//得到上传文件的长度
int upFileLength = fileUp.PostedFile.ContentLength;
byte[] Input = new Byte[upFileLength];
// 创建流
Stream myStream = fileUp.FileContent;
// Read the file into the byte array.
myStream.Read(Input, 0, upFileLength);
return Input;
}
只有用
byte[] byteFile;
string filepath = "C:\\Documents and Settings\\yanghui2\\My Documents\\msn\\main_png_r2_c33345.jpg";
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
byteFile = new byte[fs.Length];
fs.Read(byteFile, 0, (int)fs.Length);
fs.Close();
return fileBytePicture;
才可以,为什么呢
补充:.NET技术 , C#