yuyanzhizi 2013-12-17 06:43
浏览 3275

用web api下载服务器图片时传输的byte[]数组变化了。我的目的是接收到正确的byte[]

用web api下载服务器图片时传输的byte[]数组变化了。(上面从sql出来的byte[]是正确的,下面的接收到的byte[]就有问题了)传输用的是json,下面的是发送的代码和接受的代码,求各位大神解答,自己觉得是发送的方式有问题。数据流是SQl中的image类型

[HttpGet]
public byte[] GoodsPhoto(Int32 goodsid)
{
try
{
//DataTable goodsTable = new DataTable();
//byte[] a = new byte[10];
using (SqlConnection cn = new SqlConnection(DBHelper.Instance.ConnectionString))
{
String sql = "select photo from Bill_GoodsPhoto where goodsid=6";

                SqlCommand cmd = new SqlCommand(sql, cn);
                cmd.Parameters.AddWithValue("goodsid", goodsid);
                cn.Open();

                SqlDataReader dr = cmd.ExecuteReader();

                if (dr.Read())
                {
                    FileStream fs = new FileStream(@"f:\1.jpg", FileMode.Create, FileAccess.Write);

                  byte[] bytes = (byte[])dr["Photo"];
                    //MemoryStream ms = new MemoryStream(a, 0, a.Length);
                    //Image returnImage = Image.FromStream(ms);
                    //returnImage.Save(@"f:\1.jpg");
                    return bytes;
                }


                //goodsTable.Load(dr);

                //return new Result<DataTable>(goodsTable);
                return null;

            }
        }
        catch (Exception ex)
        {
            return null;
        }
    }

[HttpGet]
public byte[] GoodsPhoto11(Int32 goodsid)
{

        try
        {
            String URL = "http://192.168.1.106:6971/API/Epoch/GoodsPhoto?goodsid=6";

            WebClient wc = new WebClient();
            byte[] ab = wc.DownloadData(URL);

            MemoryStream ms = new MemoryStream(ab, 0, ab.Length);
            Image returnImage = Image.FromStream(ms);

            returnImage.Save(@"f:\1.jpg");
            return ab;

        }
        catch (Exception ex)
        {
            return null;
        }
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 学不会递归,理解不了汉诺塔参数变化
    • ¥30 软件自定义无线电该怎样使用
    • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
    • ¥15 Jenkins+k8s部署slave节点offline
    • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
    • ¥15 WPF使用Canvas绘制矢量图问题
    • ¥15 用三极管设计一个单管共射放大电路
    • ¥15 孟德尔随机化r语言运行问题
    • ¥15 pyinstaller编译的时候出现No module named 'imp'
    • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)