前端代码:
<input type="file" id="file6" multiple>
<button type="button" class="btnFile6">分片上传6</button>
<div class="result"></div>
//方式6
$(".btnFile6").click(function () {
var upload = function (file, skip) {
var formData = new FormData();//初始化一个FormData对象
var blockSize = 1000000;//每块的大小
var nextSize = Math.min((skip + 1) * blockSize, file.size);//读取到结束位置
var fileData = file.slice(skip * blockSize, nextSize);//截取 部分文件 块
formData.append("file", fileData);//将 部分文件 塞入FormData
formData.append("fileName", file.name);//保存文件名字
$.ajax({
url: "/Home/SaveFile6",
type: "POST",
data: formData,
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
success: function (responseText) {
$(".result").html("已经上传了" + (skip + 1) + "块文件");
if (file.size <= nextSize) {//如果上传完成,则跳出继续上传
alert("上传完成");
return;
}
upload(file, ++skip);//递归调用
}
});
}; var file = $("#file6")[0].files[0];
upload(file, 0);
});

  

后台代码:
public string SaveFile6()
{
//保存文件到根目录 App_Data + 获取文件名称和格式
var filePath = Server.MapPath("~/App_Data/") + Request.Form["fileName"];
//创建一个追加(FileMode.Append)方式的文件流
using (FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
//读取文件流
BinaryReader br = new BinaryReader(Request.Files[0].InputStream);
//将文件留转成字节数组
byte[] bytes = br.ReadBytes((int)Request.Files[0].InputStream.Length);
//将字节数组追加到文件
bw.Write(bytes);
}
}
return "保存成功";
}

  

最新文章

  1. iOS中富文本NSMutableAttributedString的用法
  2. c# 传递Null的string值导致的调用C++的dll报错 Attempted to read or write protected memory.
  3. 【POJ 2480】Longge&#39;s problem(欧拉函数)
  4. ASP.NET中的状态保持(转载)
  5. bzoj1856
  6. 在eclipse中使用javap工具反汇编
  7. Leetcode 240. Search a 2D Matrix II
  8. Muduo-Base-TimeStamp类
  9. Linux和Windows下的进程管理总结
  10. linux下awk命令详解
  11. SharePoint 2013的HTML5特性之响应式布局
  12. js变量提升小记
  13. 转-OWASP CSRFGuard使用细节
  14. ubuntu下搭建一个数据化处理的开发环境
  15. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析
  16. html中属于布尔类型的属性
  17. 通过sys.objects查询SQL SERVER数据库改动内容
  18. (转) 转换Drupal7模块到Drupal8
  19. CentOS 6.5 下 QT4 连接 mysql 数据库的步骤
  20. 修改activityMQ的登录账与密码

热门文章

  1. IaaS,PaaS,SaaS 的区别
  2. 配置多个 git 账号的 ssh密钥
  3. 忘记时间戳的存在——Yii2超实用的自动更新时间戳的Behavior(改进版)
  4. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)
  5. html/css的学习之路(1)
  6. 基于element-tree-table树型表格点击节点请求数据展开树型表格
  7. Djang之cookie和session
  8. Dagger2源码浅析
  9. Error: Invoke-customs are only supported starting with Android O (--min-api 26)
  10. Git 最佳实践:分支管理