У меня есть служба на стороне сервера, которая принимает загружаемые файлы и проверяет содержимое 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.