Я написал код для загрузки файла, который позволит использовать только некоторые определенные файлы. Если пользователь загрузит какой-либо неправильный тип файла расширения, он будет через ошибку из бэкэнд. Я делаю все validaton только из бэкэнд. Сообщение об ошибке очень хорошо отображается на моей локальной машине. Но когда я развертываю код в сообщении QA UAT или prod, сообщение не отображается. Я получаю Typeerror: canot читает свойство "0" неопределенного
In local we are notminifying the code. But in all other env it is minified.
Ниже приведен код, который я написал для интерфейса.
scope.uploadFile = function (fileModel) {
Upload.upload({
url: scope.url,
method: 'POST',
fields: {'requestId': scope.requestId, 'type': scope.type, 'isFileExisted' : fileModel.isFileExisted},
file: fileModel.file,
fileFormDataName: 'myFile',
sendFieldsAs: scope.form
}).progress(function (evt) { // Progress bar.
fileModel.completion = parseInt(100.0 * evt.loaded / evt.total);
}).success(function (data, status, headers, config) {
fileModel.serverMessage = 'File uploaded successfully';
fileModel.status = '200';
fileModel.id = data.id;
scope.onUpload({document: data});
}).error(function (data, status, headers, config) {
fileModel.status = '500';
fileModel.serverMessage = data.errors[0].message;
return false;
});
};
def validateDocument(String type, def file, def requestObj) {
String errMsg
if(type == 'treasury')
{
if (documents.findAll({ it.documentType == DocumentType.My_DOCUMENTS }).size() >= 5)
{
errMsg = "Maximum 5 attachments are allowed."
}
else if (documents.findAll{ it.documentType == DocumentType.My_DOCUMENTS }.find { it.fileName == file.originalFilename })
{
errMsg = "File with same name already exists."
}
}
if (file.getSize() >= (1024 * 1024 * 5))
{
errMsg = "File size cannot exceed 5 MB."
}
else if (!(mediaType == 'application/x-tika-ooxml' || mediaType == 'application/pdf'))
{
errMsg = "Invalid file format. Please add .doc .docx .xls .xlsx .pdf only"
}
else if (file.empty)
{
errMsg = "File cannot be empty."
}
}
errMsg
}
Please see the attached image in which i have marked an arrow, where
i am not getting error message.
Эй, я сожалею об этом вопросе... Нет проблем с кодом, а не с минификацией кода. Фактически, когда мы уничтожаем исключение или ошибку из бэкэнд со статусным кодом (500 400 403 404). он будет отфильтрован другой командой из-за фильтрации безопасности. Это связано с уровнем безопасности организации.