微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice大文件传输

我用的方法很简单,首先先把大文件转换成byte数组,然后调用webservice将byte数组转换成文件。但是如果文件大小超过25M的时候会超时,所以我将这个数组分批传输,每一批都是一个20M的byte数组,然后把这些数组追加,最后形成一个完整的文件。注意在形成文件的时候要判断要生成文件是否存在,否则如果文件已经存在的话,该文件不会被覆盖,而是被追加。

 

using System;
using System.Collections.Generic;

using System.Text;
using System.IO;

namespace controtest
{
    classprogram
    {
       static byte[] buffer;
       static void Main(string[] args)
       {
           string rst =string.Empty ;
           PartnerWebservice.PartnerServices pa = newPartnerWebservice.PartnerServices();
           string path =System.Configuration.ConfigurationSettings.AppSettings["path"].ToString();//文件的存放目录
           string filename =System.Configuration.ConfigurationSettings.AppSettings["name"].ToString();//文件名称
           Console.WriteLine("ConvertToBinary start at"+DateTime.Now.ToString());
           buffer = ConvertToBinary(path);//将文件转换成byte数组
           int   index = buffer.Length /20971520;//20971520bite就是20M,1*1024*1024*20
           index += buffer.Length % 20971520 == 0 ? 0 : 1;
           bool ifEnd=false;//是否为最后一组
           for (int ii = 0; ii < index; ii++)
           {
               if (ii == index - 1)
                   ifEnd = true;
               Console.WriteLine("ConvertToBinary end at " +DateTime.Now.ToString());
               Console.WriteLine("Trans start at " +DateTime.Now.ToString());
               pa.TransFile(ConvertToBinary(ii,ifEnd),"XXXX.XXX");//分批传输数据,追加到XXXX.XXX文件,如果不存在会自动创建
               Console.WriteLine(rst);
      

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐