通过WebService跨平台上传大文件到服务器
2024-08-28 08:58:58
好长时间没写博客了,对最近工作中遇到的大文件上传和下载的代码贴出来和大家分享一下。
大文件的上传的和下载是C++的平台通过调用WebService实现文件上传和下载到服务器
/// <summary>
/// 大文件文件上传
/// </summary>
/// <param name="FilePath">上传文件保存路径</param>
/// <param name="fileB">上传的二进制流</param>
public void AcceptFile(string FilePath, Byte[] fileB)
{
FileStream fStream;
//存在该文件追加,不存在创建
if (File.Exists(FilePath))
{
fStream = new FileStream(FilePath, FileMode.Append, FileAccess.Write);
}
else
{
fStream = new FileStream(FilePath, FileMode.Create, FileAccess.Write);
}
fStream.Write(fileB, , fileB.Length);//把二进制流转文化文件
fStream.Close();
}
/// <summary>
/// 从指定文件夹大文件下载
/// </summary>
/// <param name="FileName">文件名</param>
/// <param name="StartPosition">截取的开始位置</param>
/// <param name="num">调用的次数</param>
/// <param name="fileB">返回的二进制流</param>
public void DownLoadFile(string FileName, int StartPosition, int num, string FilePath, out Byte[] fileB)
{
string[] ResourceDir = Directory.GetFiles(FilePath);
Byte[] ResourceByte = { };
for (int i = ; i < ResourceDir.Length; i++)
{
FileStream fStream=new FileStream(ResourceDir[i].ToString(),FileMode.Open,FileAccess.Write);
string ResourceName = ResourceDir[i].ToString().Substring(ResourceDir[i].LastIndexOf("\\") + );
int iLen=*;//每次下载的大小,设置为1M
//找到要下载的文件
if (FileName == ResourceName)
{
if (fStream.Length - num * iLen < iLen)
{
fStream.Seek(StartPosition, );
ResourceByte = new Byte[fStream.Length - num * iLen];
fStream.Read(ResourceByte, , (int)fStream.Length - num * iLen);
}
else
{
fStream.Seek(StartPosition, );//读取二进制流的指定位置
ResourceByte = new Byte[iLen];
fStream.Read(ResourceByte, , iLen);
}
fStream.Close();
}
}
fileB = ResourceByte;
}
最新文章
- 创建Github远程仓库
- zstuoj 4243 牛吃草 ——(二分+两圆交)
- 示例-创建表格-指定行列&;删除表格的行和列
- 提高PHP性能的实用方法+40个技巧优化您的PHP代码
- 基于SXSSF (Streaming Usermodel API)的写文件
- char类型关联
- 如何查看jar包的版本号?
- CentOS NFS的安装配置、启动及mount挂载方法
- QML添加右键菜单
- C#实训 打字游戏
- HttpWebRequest在GetResponse时总是超时
- error C2248: “CObject::operator =”: 不可访问 private 员(于“CObject”类声明)
- SpringMVC 系列教程1-文件上传-配置
- Python3基础 用 函数递归求解 一个数字的阶乘
- 《Head First Java》读书笔记(1) - Java语言基础
- java随笔3 spring 的注入执行逻辑顺序
- 【python】json中字典key不可为数值型
- Morley&#39;s Therorem(UVA11178+几何)
- 函数调用运算符";()";
- pytho部分命令