C#上传图片至Springboot服务器

C#上传图片至Springboot服务器

C#端代码
        public void upload(Stream stream) {
            //流转byte[]
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);
            stream.Seek(0, SeekOrigin.Begin);

            System.Diagnostics.Debug.WriteLine("准备上传图片:" + bytes.Length);


            string data = "";
            int j = 0;
            for (int i = 0; i < bytes.Length; i++)
            {
                data += bytes[i] + ";";
                j++;
            }

            //通讯
            string res = HttpUtils.HttpPost(LoginPage.CurrentPage.Model.DomainName + "/v2/service/dwServiceUser/serviceUpload", "{\"bytes\":\"" + data + "\",\"bindId\":\"" + Model.BindId + "\",\"userId\":\"" + Model.UserId + "\"}", null);
        }

        /// <summary>
        /// 指定Post地址使用Get 方式获取全部字符串
        /// </summary>
        /// <param name="url">请求后台地址</param>
        /// <param name="content">Post提交数据内容(utf-8编码的)</param>
        /// <returns></returns>
        public static string HttpPost(string url, string content, string token)
        {
            string result = "";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

            if (token != null)
            {
                SetHeaderValue(req.Headers, "X-dw-Token", token);
            }

            req.Method = "POST";
            req.ContentType = "application/json";

            #region 添加Post 参数
            byte[] data = Encoding.UTF8.GetBytes(content);
            req.ContentLength = data.Length;
            using (Stream reqStream = req.GetRequestStream())
            {
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
            }
            #endregion

            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            //获取响应内容
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }

		//添加请求头信息
        private static void SetHeaderValue(WebHeaderCollection header, string name, string value)
        {
            var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", BindingFlags.Instance | BindingFlags.NonPublic);
            if (property != null)
            {
                var collection = property.GetValue(header, null) as NameValueCollection;
                collection[name] = value;
            }
        }
JAVA端代码
/**
     * 上传图片
     *
     * @return
     */
    @PostMapping("/serviceUpload")
    @PassToken
    public AjaxResult serviceUpload(@RequestBody String str) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(str);

        Object bytes = jsonObject.get("bytes");

        String[] split = bytes.toString().split(";");
        byte[] aa = new byte[split.length];

        for (int i = 0; i < split.length; i++) {
            if (!com.tz.common.utils.StringUtils.isBlank(split[i])) {
                if (Integer.parseInt(split[i]) >= 128) {
                    aa[i] = Byte.parseByte(Integer.parseInt(split[i]) - 256 + "");
                } else {
                    aa[i] = Byte.parseByte(Integer.parseInt(split[i]) + "");
                }

            }
        }

		//上传至阿里云oss
        String shareCodeUrl = OSSFactory.build().upload(aa, "serviceUpload/image/" + UUID.randomUUID() + ".jpg", "image/jpg");

        return success().data(shareCodeUrl);
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值