我用的
方法很简单,首先先把大
文件转换成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);