我有一个服务器端服务,它接收文件上传并对 zip 文件的内容进行验证。验证可能包括多个类型为成功、警告和错误的消息。
这是我正在使用的使用 vaadin-upload 的聚合物组件中的当前代码:
window.addEventListener('WebComponentsReady', function() {
var upload = document.querySelector('vaadin-upload#responseDemo');
upload.addEventListener('upload-response', function(event) {
var results = JSON.parse(event.detail.xhr.response);
console.log('upload xhr after server response: ', event.detail.xhr);
if (results[0].messages.length > 0) {
event.detail.file.error = "";
for (var i = 0; i < results[0].messages.length; i++) {
if (i > 0) {
event.detail.file.error += ";";
}
event.detail.file.error += results[0].messages[i].message;
}
}
// Interpret any server response as success:
// event.detail.xhr.status = 200;
});
});
以下是从服务返回的结果格式:
[
{
"name": "foo.zip",
"messages": [
{
"type": "error",
"message": "no store.csv metadata found"
}
]
}
]
如果有任何类型错误的消息,那么它应该显示文件上传失败。如果只有警告和成功,那么上传应该有一个带有警告的图标。如果没有消息或只有成功的消息,则文件上传应标记为成功。
我目前正在使用聚合物 1,但很快将升级到聚合物 3。