http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

123
返回列表 发新帖
楼主: jackliangs

[HttpHelper] 寻求POST上传图片的DEMO

[复制链接]
发表于 2016-9-1 16:59:36 | 显示全部楼层
这种上传控件的方法,有时候单纯的靠拼接是不行的,楼主可以尝试一下这种方案测试一下,Htttphelper暂时不支持分流上传

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Msf.Engine.Network.NetworkTool
{
    public sealed class MultipartFormData : IDisposable
    {
        public const string Boundary = "--the_great_maoshu--";

        public static string ContentType
        {
            get { return "multipart/form-data; boundary=" + Boundary; }
        }

        private MemoryStream _stream;
        public MemoryStream Stream
        {
            get { return _stream ?? (_stream = new MemoryStream()); }
        }

        public MultipartFormData()
        {
        }

        public void AddContent(string name, string value)
        {
            var sp = string.Format("--{0}\r\n", Boundary);
            sp += string.Format(
                "Content-Disposition: form-data; name=\"{0}\"; \r\n\r\n{1}",
                name,
                value);
            var data = Encoding.UTF8.GetBytes(sp);
            Stream.Write(data, 0, data.Length);
        }

        public void AddContent(string name, string fileName, byte[] fileData)
        {
            var sp = string.Format("--{0}\r\n", Boundary);
            sp += string.Format(
                "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n",
                name,
                fileName);
            var data = Encoding.UTF8.GetBytes(sp);
            Stream.Write(data, 0, data.Length);
            Stream.Write(fileData, 0, fileData.Length);
            data = Encoding.UTF8.GetBytes("\r\n");
            Stream.Write(data, 0, data.Length);
        }

        public byte[] GetPostData()
        {
            var sp = string.Format("--{0}--\r\n", Boundary);
            var data = Encoding.UTF8.GetBytes(sp);
            Stream.Write(data, 0, data.Length);

            Stream.Position = 0;
            return Stream.ToArray();
        }

        public void Dispose()
        {
            if (_stream != null) _stream.Dispose();
            _stream = null;
        }
    }
}


http://www.cnblogs.com/yydcdut/p/3736667.html



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2016-9-1 17:34:26 | 显示全部楼层
好的,我试试;站长有时间可以不可以帮忙写个淘宝图片上传的DEMO嘛,我们跟着学习下,拜托啦。
发表于 2016-9-1 17:38:36 | 显示全部楼层
jackliangs 发表于 2016-9-1 17:34
好的,我试试;站长有时间可以不可以帮忙写个淘宝图片上传的DEMO嘛,我们跟着学习下,拜托啦。

这个最近怕是没时间,实话说,Htttphelper对这种情况支持的一直都 不是很好,因为这种情况一般比较复杂,直接使用字节很不好处理,这种直接使用原生的Post比较适合。我曾经尝试过支持流,但会有很多弊端,
发表于 2016-9-1 17:40:50 | 显示全部楼层
你有兴趣的话可以从网上下载一个例子,使用原生的HttpWebRequest来实现。我这边有时间了,再看看能不能整合进来
发表于 2016-9-1 17:42:04 | 显示全部楼层
合并字节可以使用这个方法
  byte[] postbyte = starbyte.Concat(img).ToArray().Concat(endbyte).ToArray() ;
 楼主| 发表于 2016-9-2 09:38:37 | 显示全部楼层
http://www.cnblogs.com/yydcdut/p/3736667.html  是这个帖子的例子吗?
发表于 2016-9-2 09:41:43 | 显示全部楼层
应该不是,要不你直接看代码吧,或者网上自己找一下原生的
 楼主| 发表于 2016-9-2 09:43:44 | 显示全部楼层
谢谢站长,我先自己研究下,虽然自己经验不足,但是很想能弄出来;
发表于 2016-9-2 09:46:28 | 显示全部楼层
jackliangs 发表于 2016-9-2 09:43
谢谢站长,我先自己研究下,虽然自己经验不足,但是很想能弄出来;

恩好。研究吧,给你点赞,研究出来给分享一下,我也参考一下
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-3-29 16:14

© 2014-2021

快速回复 返回顶部 返回列表