用FileUpload控件让用户选择要上传的图片 通过一个按钮把选择的图片存入数据库 然后再从数据库里面读出来在winform中用序列化与反序列化进行图片的存放预读取 这个做没有问题
问题是再ASP.NET里面不知道怎么入手 FileUpload1选择完成后是一个路径 而在winform里面图片是放到picturebox里面的 直接序列化就行了 但在asp.net里面怎么弄的 怎么把选择的图片序列化呢 ?再有就是从数据库里面读取了以后怎么把图片在Image里面显示?他有个属性是imageurl 知道是制定这个属性但不知道怎么写 刚刚开开从winform转到asp.net 不太会 还请大家帮帮忙 先谢谢了
问题是再ASP.NET里面不知道怎么入手 FileUpload1选择完成后是一个路径 而在winform里面图片是放到picturebox里面的 直接序列化就行了 但在asp.net里面怎么弄的 怎么把选择的图片序列化呢 ?再有就是从数据库里面读取了以后怎么把图片在Image里面显示?他有个属性是imageurl 知道是制定这个属性但不知道怎么写 刚刚开开从winform转到asp.net 不太会 还请大家帮帮忙 先谢谢了
解决方案 »
- asp.net 配置文件里 <providerOption name="CompilerVersion" value="v3.5"/> 不允许有子节点
- linkbutton不触发事件
- 使用ASP.NET内置的登陆验证机制MemberShip,用户名和密码都对,却登陆不了
- 关于System.Timers.Timer
- 菜鸟问题来了~~~~~~~~
- 几个验证控件的问题。
- 抢分题目,超简单的,快来吧,关于dropdownlist的定位问题
- 关于页面内容显示格式问题?
- 关于验证
- 数据源读取错,原因:在将 nvarchar 值 '0,1' 转换成数据类型 int 时失败。
- ASP.NET AJAX Control Toolkit中的ReorderList控件 的问题
- 请问如何为DropDownList 设置一个值?并在后台获得这个值?
他的saveas方法拿到的是哪个的二进制流 C:/WINDOWS/1.JPG
是1.JPG的二进制流还是?
将二进制流序列成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();
效率更高些 免去转换过程。我想Web机制 图片 加载是很慢的吧。高性能Web很重要。
质量是一样的 只不过如果网络存在丢包的话 在读取的时候就会出错 因为数据不全
**********我把图片转换成二进制的流存入数据库的原因是:节省服务器空间 理由如下:
照理说把图片存入服务器的一个文件夹占用一定得空间 数据库中存放路径有占用空间 虽然数据库站的地方小 但是随着网站规模的扩大 那个文件夹的大小会很大
相对来说费用就比较高(租用服务器) 但转换成二进制流占用的空间比较小,至于网络丢包造成的数据部全导致读取图片失败的解决方法是(针对于C/S结构):
客户端通过一个算法对数据进行计算 生成一个验证码(具体算法大家研究吧 自私一下 留个悬念 ^_^) 再把数据与验证码发送至服务器 服务器用相同的算法进行计算 也生成验证码 进行验证码比较 相同则没有丢包 反之则丢包 所有对数据库的操作都有服务器完成 客户端 主要采集用户信息 不知道在web里面是怎么解决这个问题的 希望大家能说出来交流一下 以上说法仅为个人的观点 欢迎各大掌门前来拍砖!
谢谢12楼 正解!!