Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Este evento permite personalizar a conversão de documento realizada pelo TOTVS Fluig Plataforma. Mais informações sobre ele podem ser encontradas no guia Conversores de Documentos.

ValidateUpload

Nota

A partir da versão: 1.8.

...

1-

...

Silver Mist

Este evento sempre é disparado antes de realizar upload de arquivo para a plataforma, seja por API Rest, Soap/Webservices ou FTP. Através dele é possível validar o MIMEType ou Extensão do arquivo que está sendo feito upload e poder bloquear. O evento não recebe parâmetros, porém temos acesso à função getValue.

Exemplo:

Bloco de código
languagejs
linenumberstrue
function validateUpload() {
	// Exemplo de implementação

	// CompanyId da empresa
	var companyId = getValue("WKCompany");

	// Nome do arquivo com extensão
	var fileName = getValue("WKFileName");

	// Tamanho do arquivo em bytes
	var fileSize = getValue("WKFileSize");

	// Caminho absoluto do arquivo
	var filePath = getValue("WKFilePath");

	// MimeType dos bytes do arquivo, ou seja, independente da extensão
	var fileMimeType = getValue("WKFileMimeType");

	// UserId do usuário que está realizando o upload
	var userId = getValue("WKUser");

	// A maioria dos mimetypes executáveis começam com "application/x-"
	if (fileMimeType.indexOf("application/x-") !== -1) {

		// Porém alguns tipos começam também com "application/x-", como por exemplo: .rar ou .7zip. Então caso deseja permití-los, pode ser feito assim:
		if (fileMimeType.indexOf("application/x-rar-compressed") !== -1 || fileMimeType.indexOf("application/x-7z-compressed") !== -1) {
			return;
		}

		throwsIfBlocked();
	}

	// Podemos bloquear qualquer outro mimetype, por exemplo:
	if (fileMimeType.indexOf("application/octet-stream") !== -1 || fileMimeType.indexOf("application/exe") !== -1) {
		throwsIfBlocked();
	}

    // Podemos bloquear também pela extensão do arquivo
    if (fileName.match(/.*\.(sh|exe|msi|bat|app)/i)){
        throwsIfBlocked();
    }

	// Função usada para logar uma mensagem no log do servidor e retornar o erro na tela
	function throwsIfBlocked() {
		log.warn("Usuário: '" + userId + "' da Empresa: '" + companyId + "' tentou realizar o upload "
				+ "do Arquivo '" + fileName + "' com o Mimetype: '" + fileMimeType + "' e foi impedido!");

		throw "Este formato de documento não está de acordo com as políticas de segurança e portanto não será permitida sua publicação na plataforma.";
	}
}

...

São disponibilizadas algumas propriedades referentes ao arquivo que está sendo feito upload através do método getValue.

PropriedadeDescriçãoTipo
WKCompanyCódigo da Empresaint
WKFileNameNome do arquivo com extensão

String

WKFileSizeTamanho do arquivo em byteslong
WKFilePathCaminho absoluto do arquivoString
WKFileMimeTypeMimeType dos bytes do arquivo, ou seja, independente da extensão

String

WKUserUsuário logadoString

ValidateCustomMetadata

Este evento sempre é disparado antes de salvar os valores dos campos customizados de um documento, tanto na publicação como edição. Através dele é possível alterar ou validar os valores dos campos customizados dos metadados de um documento. O evento recebe como parâmetro uma referência aos campos customizados.

...