62,052
社区成员
发帖
与我相关
我的任务
分享
progress = 100 * (start) / filesize;
console.log("已上传:"+progress.toFixed(2)+"%");
protected void Page_Load(object sender, EventArgs e)
{
var msg = "";
if (httpType == HttpType.POST && method == "upload")
{
msg = 件上传();
}
base.WriteJson(msg, false);
}
string 文件上传()
{
if (Request.Files.Count == 0)
{
throw new MyException("文件为空");
}
if (Request.Form.AllKeys.Any(m => m == "chunk"))
{
var chunk = Convert.ToInt32(Request.Form["chunk"]);
var chunks = Convert.ToInt32(Request.Form["chunks"]);
var folder = Server.MapPath("~/upload/");
var filename = folder + Request.Form["guid"];
using (var addFile = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite, 1024, true))
{
using (var AddWriter = new BinaryWriter(addFile))
{
using (var stream = Request.Files[0].InputStream)
{
using (var TempReader = new BinaryReader(stream))
{
AddWriter.Write(TempReader.ReadBytes((int)stream.Length));
TempReader.Close();
}
stream.Close();
}
AddWriter.Close();
}
addFile.Close();
}
//如果是最后一个分片,则重命名临时文件为上传的文件名
if (chunk == (chunks - 1))
{
FileInfo fileinfo = new FileInfo(filename);
var newName = DateTime.Now.ToString("yyyyMMdd") + "_" + Guid.NewGuid().ToString().ToUpper().Replace("-", "") + "." + Request.Files[0].FileName.Split('.').LastOrDefault();
fileinfo.MoveTo(Server.MapPath("~/upload/" + newName));
return ApiHelper.OK(new { filename = newName });
}
var obj = new { 总共 = chunks, 当前 = chunk };
throw new MyException(obj.ToJson());
}
else
{
var file = Request.Files[0];
var newName = DateTime.Now.ToString("yyyyMMdd") + "_" + Guid.NewGuid().ToString().ToUpper().Replace("-", "") + "." + Request.Files[0].FileName.Split('.').LastOrDefault();
file.SaveAs(Server.MapPath(@"~/upload/") + newName);
return ApiHelper.OK(new { filename = newName });
}
}
async Task<string> 文件上传()
msg = await 文件上传();
protected async void Page_Load(object sender, EventArgs e)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="file.aspx.cs" Inherits="api_file" Async="true" %>
onload()
{
if xxx ==post )
{
resp.write(upload());
}
}
string upload()
{
if req.file>0 .
saveas(...
return new {name=....}.tojson();
}
难道 我要前台异步 后台也要异步?
onload()
{
if xxx ==post )
{
resp.write(await upload());
}
}
async task<string> upload()
{
//同upload
}
我对这些不太理解....是不是这个意思??@sp1234