[Silverlight学习笔记]实现上传图片功能时遇到的问题
2010-11-28 14:47
721 查看
点击“上传”按钮的时候显示图片,并把图片对应的二进制数据保存在全局变量m_imageBuffer中,此时要注意一下保存数据到m_imageBuffer和从文件流中读取并设置图像源的顺序,必须先将文件流中的数据读取并保存到m_imageBuffer,然后再根据文件流设置图像源,代码如下:
如果顺序弄反了,那么只能从文件流中读出0数据保存在m_imageBuffer中,所以在数据库中的image类型存储的二进制数据全是0,肯定是错误的。
由于Silverlight只支持jpg和png,因此上传bmp图片还不能显示,要想实现上传bmp图片,在网上有些BMPDecoder类可以转换bmp图片,或者参考http://www.cnblogs.com/lichence/archive/2010/09/11/1824157.html这个博主的文章。
/// <summary> /// 上传头像 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUploadAvatar_Click(object sender, RoutedEventArgs e) { OpenFileDialog openDlg = new OpenFileDialog(); openDlg.Multiselect = false; openDlg.Filter = "图像文件(*.jpg;*.png;*.jpeg)|*.jpg;*.png;*.jpeg|所有文件(*.*)|*.*"; bool? dlgResult=openDlg.ShowDialog(); if (dlgResult==true) { if (openDlg.File != null) { string [] fileName=openDlg.File.Name.Split('.'); if (!(fileName[fileName.Length - 1] == "jpg" || fileName[fileName.Length - 1] == "jpeg" || fileName[fileName.Length - 1] == "png")) { MessageBox.Show("请选择jpg、jpeg、png格式的文件!"); return; } FileStream fileStream = openDlg.File.OpenRead(); /// <summary> /// 这段代码必须放在后面那段代码之前,否则m_imageBuffer存储的都是0,原因不明。 /// </summary> long picLength = fileStream.Length; m_imageBuffer = new byte[picLength]; fileStream.Read(m_imageBuffer, 0, (int)picLength); BitmapImage bitmap = new BitmapImage(); bitmap.SetSource(fileStream); this.imgAvatar.Source = bitmap; ///获取图像的缓存存入字节数组m_imageBuffer中,方便以后保存头像 fileStream.Close(); } } }
如果顺序弄反了,那么只能从文件流中读出0数据保存在m_imageBuffer中,所以在数据库中的image类型存储的二进制数据全是0,肯定是错误的。
由于Silverlight只支持jpg和png,因此上传bmp图片还不能显示,要想实现上传bmp图片,在网上有些BMPDecoder类可以转换bmp图片,或者参考http://www.cnblogs.com/lichence/archive/2010/09/11/1824157.html这个博主的文章。
相关文章推荐
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- ueditor1_4_3-utf8-jsp 配置实现上传图片的功能遇到的问题,改变图片上传请求地址
- ueditor1_4_3-utf8-jsp 配置实现上传图片的功能遇到的问题,改变图片上传请求地址
- 【学习笔记⑥】ssh中利用struts实现图片的上传功能
- 在tp3.2.3中使用 FormData 对象实现表单的文件上传功能遇到的一个问题及解决方法
- 关于oc 开发上传图片 功能遇到的问题分享
- SilverLight学习笔记--使用WebClient实现通讯(二)(上传和下载流数据)
- 学习淘淘商城第二十课(实现图片上传功能)
- spring boot实现上传图片并在页面上显示及遇到的问题小结
- JFinal学习笔记(四) 实现简单的图片上传
- Android 调用系统功能实现图片选择器,你可能会遇到的问题汇总
- 微信JS—SDK嵌套选择图片和上传图片接口,实现一键上传图片,遇到问题
- xhEditor在线编辑器学习笔记(1)---用Struts2+ajax实现图片上传
- 3月31日学习笔记(6.0版本用Broadcast实现强制下线功能问题)
- JDCB学习笔记 -- day05 实现一个用户的登录功能及解决SQL注入问题
- .Net语言 APP开发平台——Smobiler学习日志:快速实现手机上的图片上传功能
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)
- Andorid学习笔记:实现图片选择器功能(上)
- 安卓学习笔记---Retrofit2.0 实现图文(参数+图片)上传方法总结
- PHP学习笔记(十二):$_FILES超级全局变量(借助网上社区项目的上传图片功能进行介绍)