wpf 图片上传

通常情况下上传图片后有两种保存方式:一是直接将图片保存至数据库;二是将图片保存在服务器的Image文件夹下,而将图片的路径保存在数据库中。两者各有各的好处,但通常情况下建议使用第二种方法。下面将这两种方法简单的说一下。

WPF客户端:
连接WCF服务,将图片转换为FileStream流,再将FileStream流以byte[]方式进行图片上传!

#region 文件流转换路径
        private string WenJianLiuZhuanHuanLuJing(byte[][] byteTuPian)
        {
            try
            {
                //拼接日期
                string strWenJianQianZhui = DateTime.Now.Year.ToString() 
				                          + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() 
				                          + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() 
				                          + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                 string strWenJianName = string.Empty;
                //遍历二进制的数组的数组
                for (int i = 0; i < byteTuPian.Length; i++)
                {
                    string strRiQiWenJian = strWenJianQianZhui + i.ToString() + ".png";
                    //获取基目录,它由程序集冲突解决程序用来探测程序集。
                    string strBaoCunLuJing = System.AppDomain.CurrentDomain.BaseDirectory;
                    //拼接路径
                    strBaoCunLuJing = strBaoCunLuJing + "image\\" + strRiQiWenJian;
                    FileInfo fi = new System.IO.FileInfo(strBaoCunLuJing);
                    FileStream fs;
                    fs = fi.OpenWrite();
                    //将字节块写入文件流。(数组,开始字节索引,长度)
                    fs.Write(byteTuPian[i], 0, byteTuPian[i].Length);
                    //关闭当前流并释放与之关联的所有资源
                    fs.Close();
                    strWenJianName = strRiQiWenJian;
                }
                return strWenJianName;
            }
            catch
            {
                return null;
            }
        }
        #endregion

WCF服务端:
以IIS为宿主,Http协议实现接收客户端的byte[]数据,返回给WPF客户端!
服务端Web.config配置十分重要,要做到大图片数据传输,需要给在binding添加

system.web节点下添加
<system.web>


</system.web>

#region 图片上传
public string UserControl_Loaded_SelectPhoro(string strLuJing)
        {
            return LuJingZhuanHuanWenJianLiu(strLuJing);

        }
        #endregion
        #region 路径转换文件流
        private string LuJingZhuanHuanWenJianLiu(string strLuJing)
        {
            try
            {
                string strPhotoLuJing = "";
                if (strLuJing != "")
                {
                    //得到服务端所在位置的应用程序集
                    string strSaveLuJing = AppDomain.CurrentDomain.BaseDirectory;
                    //获取图片路径
                    strPhotoLuJing = strSaveLuJing + "image\\" + strLuJing;
                }
                return strPhotoLuJing;
            }
            catch
            {
                return null;
            }
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值