当前位置:编程学习 > C#/ASP.NET >>

asp:FileUpload 控件获得二进制

环境:asp.net 2.0
html:   上传文件: 
             <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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,