【发布时间】:2016-01-21 22:20:02
【问题描述】:
我有一个需要上传的文件列表,每个文件都在单独的请求中上传。我如何确保每个文件都成功上传,如果有任何失败,它们都失败了?我用来上传文件的代码是:
for (var i = 0; i < files.length; i++) {
upload(files[i]).then(function(d) {
// success
...
}).catch(function(d) {
// fail
...
});
}
服务器接收每个文件并将其保存在文件夹下。我想确保我发送的每个文件都成功上传,如果没有删除服务器上的所有文件。
【问题讨论】:
-
您需要告诉您的服务器总数以及您正在上传总数中的哪一项,然后服务器可以决定是否需要删除或移动。如果你有一个密封的上传例程,你可以在上传 POST 上添加一个 GET 参数。
-
服务器将同时处理它从许多用户那里获得的每个请求,那么服务器如何知道一切都成功了。例如,假设我上传了 3 个文件,并告诉服务器我要上传 3 个文件。如果只上传了 2 个文件,服务器将等待第三个文件,即使它失败(例如用户断开连接)。
-
它可以等待,使用缓冲区刷新或其他东西,但这是一个好点。如果服务器被告知 3/3,则很容易检查问题,并且 temp 文件夹中只有一个文件,但如果它被放弃,事情就会变得模糊不清。删除任何超过 1 小时的文件的简单 chron 作业应该涵盖您。
标签: javascript file-upload server