好长时间没写博客了,对最近工作中遇到的大文件上传和下载的代码贴出来和大家分享一下。

大文件的上传的和下载是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;
}

通过WebService跨平台上传大文件到服务器的更多相关文章

  1. [Asp.net]Uploadify上传大文件,Http error 404 解决方案

    引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章:[Asp.net]Upl ...

  2. php 上传大文件配置upload_max_filesize和post_max_size选项

    php 上传大文件配置upload_max_filesize和post_max_size选项 (2014-04-29 14:42:11) 转载▼ 标签: php.ini upload _files[f ...

  3. PHP上传大文件 分割文件上传

    最近遇到这么个情况,需要将一些大的文件上传到服务器,我现在拥有的权限是只能在一个网页版的文件管理系统来进行操作,可以解压,可以压缩,当然也可以用它来在线编辑.php文件. 文件有40M左右,但是服务器 ...

  4. ASP.NET上传大文件的问题

    原文:http://www.cnblogs.com/wolf-sun/p/3657241.html?utm_source=tuicool&utm_medium=referral 引言 之前使用 ...

  5. php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

    php 上传大文件主要涉及配置 upload_max_filesize 和post_max_size两个选项   今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了 ...

  6. SWFUpload上传大文件(暂时用用,真正用的时候还是要改的)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. PHP上传大文件和处理大数据

    1. 上传大文件 /* 以1.5M/秒的速度写入文件,防止一次过写入文件过大导致服务器出错(chy/20150327) */ $is_large_file = false; if( strlen($x ...

  8. QQ上传大文件为什么这么快

    今天和同事在群里讨论“QQ上传大文件/QQ群发送大文件时,可以在极短的时间内完成”是如何做到的. 有时候我们通过QQ上传一个几百M的文件,竟然只用了几秒钟,从带宽上限制可以得出,实际上传文件是不可能的 ...

  9. IIS7下swfupload上传大文件出现404错误

    要求上传附件大小限制在2G,原本以为可以轻松搞定.在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误. ...

随机推荐

  1. HTTP Digest authentication

    (Digest authentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描写叙述.其身份验证机制非常easy,它採用杂凑式(hash ...

  2. 使用 React和webpack开发和打包发布

    建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本次使用 webpack. 第一步.安装全局包 $ npm install babel -g $ ...

  3. cookie 和 session 基本使用 以及 封装

    Cookie: 是一小段文本信息,用户请求页面的时候,在浏览器和服务器之间传递.用户每次访问的时候都会记录cookie,cookie里可以包含用户信息,浏览的历史记录等等:Cookie是由服务器端生成 ...

  4. 修改MySQL默认最大连接数

    修改MySQL默认最大连接数 MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个: 方法一: 进入MYSQL ...

  5. webapi单元测试时出现的ConfigurationManager.ConnectionStrings为空错误

    这个是读取配置文件没读到的问题,解决方法很简单,把webapi的配置文件复制到单元测试项目中,并把名字改为App.config即可. 同时 ,推荐使用Unit Test Genertor来做测试,这个 ...

  6. 背包问题递归java

    public boolean PackageProblem(int[] arr,int start,int targetLeft,int target) { if(arr.length==0) { S ...

  7. 创建mvc

    有几个界面就建几个文件夹 每个文件夹中都有三个文件夹,(models,Controllers,views) 创建一个common 和一个Base文件夹(先建文件夹,可以直接拉进去) common的目的 ...

  8. Linux程序设计 读笔3 文件操作

    一 linux文件结构 二 系统调用和设备驱动程序 三 库函数 四 底层文件访问 五 标准IO库 六 格式化输入输出 七 文件和目录的维护 八 扫描目录 九 错误处理 十

  9. bluestacks安装安卓引擎时出现2502 2503错误的解决办法

    2503代表工作站无法启动.2502代表下面的程序调用不支持的MS-DOS函数. 以管理员身份运行命令提示符在经典桌面使用快捷键Win+X,出现一个菜单,选择“命令提示符(管理员) ”即可以以管理员身 ...

  10. HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境

    HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服 ...