1》客户端 分段上传方法
public static readonly int G_BLOCK_LEN_PER = 2 * 1024 * 1024;
private void UploadZipMap(string upLoadZipFilePath, string upLoadZipFileName)
{
FileStream fileStream = null;
try
{
using (fileStream = new FileStream(upLoadZipFilePath, FileMode.Open, FileAccess.Read))
{
long FileLength = fileStream.Length;
List<long> PkgList = new List<long>();
long PkgNum = FileLength / Convert.ToInt64(G_BLOCK_LEN_PER);
for (long iIdx = 0; iIdx < FileLength / Convert.ToInt64(G_BLOCK_LEN_PER); iIdx++)
{
PkgList.Add(Convert.ToInt64(G_BLOCK_LEN_PER));
}
long s = FileLength % G_BLOCK_LEN_PER;
if(s != 0)
{
PkgList.Add(s);
}
for (long iPkgIdx = 0; iPkgIdx < PkgList.Count; iPkgIdx++)
{
long bufferSize = PkgList[(int)iPkgIdx];
byte[] buffer = new byte[bufferSize];
int bytesRead = fileStream.Read(buffer, 0, (int)bufferSize);
if (iPkgIdx == 0)
{
Webservice_Map_Sync_Mgr.Instance.ws_UPLoadOffLineMap_Sync_Ex(buffer, upLoadZipFileName, true);
}
else
{
Webservice_Map_Sync_Mgr.Instance.ws_UPLoadOffLineMap_Sync_Ex(buffer, upLoadZipFileName, false);
}
}
}
}
catch (Exception ex)
{
LogMgr.Instance.WriteInfo("FileMgr : FileToByte_Ex ->异常: " + ex, true);
}
finally
{
if (fileStream != null)
{
//关闭资源
fileStream.Close();
}
}
}
2》WebService 上传方法
//@ 文件虚拟路线
private string MapPath = @"./MapFiles/";
/// <summary>
/// 上传
/// </summary>
/// <param name="BurferBytes">文件流</param>
/// <param name="FileName">文件名</param>
/// <param name="IfCreate">是否创建?(操作)</param>
/// <returns></returns>
[WebMethod(Description = "UPLoadOffLineMap")]
public string UPLoadOffLineMap(byte[] BurferBytes, string FileName, bool IfCreate)
{
string strJsonContent = string.Empty;
BaseResponse response =