学习研究用:分享给大家
通过微信小程序原生开发实现 切片 上传手机图片,IOS相册,微信内的好友文件
wx.choosemedia 来的文件 (已测试ok)
wx.choosemessagefile 来的文件 (已测试ok)
后台代码是:ASP.NET 页面
C.aspx 文件是上传切片文件
H.aspx 是上传完成后;进行合并文件
重点:实现大文件切片上传
var cpian = wx.getFileSystemManager().readFileSync(tempFiles.path, '', index * bytesPerPiece, tempFiles.size - (index * bytesPerPiece))
.NET 后台是
var dir = Server.MapPath(filesaveurl);
dir = Path.Combine(dir, id);
if (!System.IO.Directory.Exists(dir))
System.IO.Directory.CreateDirectory(dir);
//分块文件名为索引名,更严谨一些可以加上是否存在的判断,防止多线程时并发冲突
string filePath = Path.Combine(dir, index.ToString());
var data = Request.Files["file"];
if (data != null)
{
//保存分块
data.SaveAs(filePath);
}
合并代码
foreach (var part in files.OrderBy(x => x.Length).ThenBy(x => x))
{
var bytes = System.IO.File.ReadAllBytes(part);
fs.Write(bytes, 0, bytes.Length);
bytes = null;
System.IO.File.Delete(part);
}
fs.Close();
try
{
System.IO.Directory.Delete(dir);
}