上传最后一个文件片时代码失败.(javascript, HTML 5)
Code fails when uploading last file slice. (javascript, html 5)
我有以下脚本,它工作成功,直到最后一个文件片要上传,在那里它失败了(错误代码块被触发)。我不明白为什么。
function startUpload(fileElementId, blockLength, uploadProgressElement) {
var start = 0;
var end = blockLength;
var incrimentalIdentifier = 1;
var totalNumberOfBlocks = 0;
var file = document.getElementById(fileElementId).files[0];
var progressBar = document.getElementById(uploadProgressElement);
if (file.size <= 0) {
alert('Please select a file!');
return;
}
do {
if (end > file.size - 1) {
end = file.size - 1;
}
if ((file.size % blockLength) == 0) {
totalNumberOfBlocks = parseInt(file.size / blockLength);
}
else {
totalNumberOfBlocks = parseInt(file.size / blockLength) + 1;
}
var reader = new FileReader();
reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) {
$.ajax({
type: "POST",
url: "/Home/UploadBlock",
data: { "identifier": incrimentalIdentifier, "fileName": file.name, "payload": evt.target.result },
dataType: "json",
success: function () {
progressBar.value = Math.round((incrimentalIdentifier / totalNumberOfBlocks) * 100);
},
error: function () {
alert('failure');
}
});
}
};
var payload = file.webkitSlice(start, end);
reader.readAsText(payload, 'UTF-8');
start = end + 1;
incrimentalIdentifier += 1;
end = start + blockLength - 1;
} while (end < file.size - 1);
}
我还没有在我的动作中做任何事情,但很快就会添加身体。当前的动作是:
public ActionResult UploadBlock(int identifier, string fileName, string payload)
{
return null;
}
在许多SO用户的帮助下,我终于解决了我的问题。尤其是@Raynos和@David以及其他许多人。
上面给出的代码在迭代器中有一个bug,直到最后一个块才运行。我已经改进了几次解决方案,现在可以从这个链接下载。
希望你发现它在某种程度上适合你的场景。
相关文章:
- Javascript html每点击一次就会更改url
- 通过javascript/html访问twitter共享iframe
- 使用鼠标悬停JavaScript/HTML显示文本
- JavaScript-HTML表单到JSON(空值)和格式
- 使用javascript html实时预览文本区域输入
- 如何每秒从一个变量中提取一定次数的javascript/html
- 使用变量值作为'名称标识符'javascript/html
- JavaScript HTML Onclick
- 非侵入性Javascript HTML注入
- AppendChild Form / Table [Javascript/Html/PHP]
- 按钮don't使用onClick-Javascript HTML重定向
- 在库(javascript/HTML)中将“name”替换为“id”
- 如何确定使用 javascript/html 单击了哪个对象/图像
- 新的javascript HTML元素不遵循css规则
- JavaScript/HTML 错误的解决方案
- 从图像URL javascript html保存图像文件
- javascript html使用webstorage保存表单
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- 谷歌地图/融合表Javascript HTML赢得't显示/可视化所有多边形数据(通过色标)
- JavaScript/HTML命令行小部件