Pra você que trabalha com angular e ou ASP.NET e...
Pra você que trabalha com angular e ou ASP.NET e precisa usar a mesma função entre diferentes componentes, veja essa dica.
Crie sua função, por exemplo: image-upload-validor.ts
Contendo:
export function isImageAllowedToUpload(file: File): boolean {
const IMAGE_UPLOAD_LIMIT_IN_MB = 5000;
let image_size = file.size / 1024;
if (image_size <= IMAGE_UPLOAD_LIMIT_IN_MB) return true;
return false;
}
O que essa função faz é verificar se uma determinada imagem é menor ou igual ao tamanho permitido, nesse caso, 5mb.
E nos seus componentes, basta importar sua função e invoca-la. Por exemplo:
import { isImageAllowedToUpload } from 'path';
if (!isImageAllowedToUpload(this.file)) {
return this.messageService.alert(
'Atenção!',
'Envie apenas imagens com até 5mb!'
);
}
Fazendo essa verificação com ASP.NET Core, pode fazer uso do [RequestSizeLimit(SIZE_IN_BYTE)] no seu controller. Por exemplo:
[HttpPost("Upload")]
[RequestSizeLimit(5000000000)]
public async Task<ActionResult> Upload(){...}
Algumas vantagens:
- Evita repetição de código
- Centraliza em um único lugar
- Se precisar refatorar, faça isso em um único lugar!