用FileUpload控件让用户选择要上传的图片  通过一个按钮把选择的图片存入数据库   然后再从数据库里面读出来在winform中用序列化与反序列化进行图片的存放预读取 这个做没有问题 
问题是再ASP.NET里面不知道怎么入手  FileUpload1选择完成后是一个路径 而在winform里面图片是放到picturebox里面的 直接序列化就行了 但在asp.net里面怎么弄的   怎么把选择的图片序列化呢     ?再有就是从数据库里面读取了以后怎么把图片在Image里面显示?他有个属性是imageurl  知道是制定这个属性但不知道怎么写   刚刚开开从winform转到asp.net  不太会  还请大家帮帮忙  先谢谢了

解决方案 »

  1.   

    FileUpload1空间 saveas()方法能够拿到二进制流 在数据库操作中使用流就可以了
      

  2.   


    他的saveas方法拿到的是哪个的二进制流  C:/WINDOWS/1.JPG
    是1.JPG的二进制流还是?
      

  3.   

    晕  saveas()是把文件上传到服务器的制定位置  不是通过流来完成的  是直接操作上去的现在我想把获取的这个文件转换成byte[]类型的字节流  比如c:/windows/1.jpg   把1.jpg转换成流 我的思路是:   因为数据库的字段是image类型的  所以想把1.jpg先转换成image的 然后再把它序列化 再存入数据库  读的时候再反序列化不知道我的想法合不合理   请大家帮帮忙啊
      

  4.   

    将图像序列化成二进制流
    将二进制流序列成Image Stream ImageStream;
            string Path = FileUpload1.PostedFile.FileName;
            int Size = FileUpload1.PostedFile.ContentLength; 
            string Type = FileUpload1.PostedFile.ContentType; 
            ImageStream = FileUpload1.PostedFile.InputStream;
            byte[] Content = new byte[Size];
            int Status = ImageStream.Read(Content, 0, Size);        SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
            SqlCommand comm = new SqlCommand("insert into timage (Image,Size,Type) values(@Image,@Size,@Type)", conn);        comm.CommandType = CommandType.Text;
            comm.Parameters.Add("@Image", SqlDbType.Image).Value = Content;
            comm.Parameters.Add("@Path", SqlDbType.VarChar, 200).Value = Size;
            comm.Parameters.Add("@Type", SqlDbType.VarChar, 255).Value = Type;
      Response.ContentType = (string)dr["type"];
       Response.OutputStream.Write((byte[])dr["image"],0,(int)dr["size"]);
       Response.End();
      

  5.   

    这个简单,我实现了,不过我用的是Oracle数据库软件,然后再实现那个功能。将图片存入数据库,绝不是用Save as,全部都是二进制流。
      

  6.   

    我更支持 把路径 存放在数据库中
    效率更高些 免去转换过程。我想Web机制 图片  加载是很慢的吧。高性能Web很重要。
      

  7.   


    质量是一样的  只不过如果网络存在丢包的话   在读取的时候就会出错  因为数据不全   
    **********我把图片转换成二进制的流存入数据库的原因是:节省服务器空间 理由如下:
    照理说把图片存入服务器的一个文件夹占用一定得空间  数据库中存放路径有占用空间  虽然数据库站的地方小 但是随着网站规模的扩大 那个文件夹的大小会很大
    相对来说费用就比较高(租用服务器)  但转换成二进制流占用的空间比较小,至于网络丢包造成的数据部全导致读取图片失败的解决方法是(针对于C/S结构):
    客户端通过一个算法对数据进行计算 生成一个验证码(具体算法大家研究吧 自私一下 留个悬念 ^_^) 再把数据与验证码发送至服务器 服务器用相同的算法进行计算 也生成验证码 进行验证码比较 相同则没有丢包 反之则丢包  所有对数据库的操作都有服务器完成  客户端 主要采集用户信息 不知道在web里面是怎么解决这个问题的  希望大家能说出来交流一下   以上说法仅为个人的观点  欢迎各大掌门前来拍砖!
    谢谢12楼  正解!!
      

  8.   

    图12楼的代码转换有问题啊  放入数据库再往外读就有问题了  你那个是吧FileUpload1中的路径转换成二进制了吧  只转换图片啊