cancel
Showing results for 
Search instead for 
Did you mean: 

Perda da extensão (mimetype) do ficheiro

pmans
Star Contributor
Star Contributor

Boa tarde.

Esta-me acontecer uma situação que não sei se é normal e que me está a criar problemas

Já vi muita informação do CMIS a nível deste assunto, mas ainda não consegui resolver este problema.

Ao criar um documento através do CMIS, atribuído um nome ao documento, ou seja, o documento não fica com o nome do ficheiro, quando faço o download desse ficheiro ele perde a extensão.

Documento, criado com o nome "Fatura" e posterior download

Pasta em disco para onde foi feito o download do ficheiro

Isto que acontece é normal ou esta-me a escapar algo?

Agradeço a ajuda prestada.

MN

8 REPLIES 8

douglascrp
World-Class Innovator
World-Class Innovator

Boa tarde.

Seria muito útil se você compartilhasse o código que usou para fazer o upload.

O normal é o documento ter o nome exato que você definiu, pois o Alfresco não faz essa "remoção" da extensão.

pmans
Star Contributor
Star Contributor

Bom dia Douglas

O código que tenho usado para fazer o upload do ficheiro é o seguinte.

    public static void createDocument(Session session) {

        Folder parent = session.getRootFolder();

        try {
            // create a document
            Map<String, Object> docProps = new HashMap<String, Object>();
            docProps.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
            docProps.put(PropertyIds.NAME, "Fatura");

            File f = new File("C:\\Fatura.pdf");
            InputStream isFile = new FileInputStream(f);

            ContentStream contentStream = session.getObjectFactory().createContentStream(f.getName(), f.length(),
                    "Adobe PDF Document", isFile);

            Document d = parent.createDocument(docProps, contentStream, VersioningState.MAJOR);

            isFile.close();
        } catch (Exception ex) {
            System.out.println("Something has gone horribly wrong.");
            ex.printStackTrace();
        }

    }

douglascrp
World-Class Innovator
World-Class Innovator

Bem, o problema está bem claro para mim.

Você está definindo o nome do arquivo sem a extensão, e o Alfresco vai usar o texto que você configurou, e não vai colocar a extensão para você.

docProps.put(PropertyIds.NAME, "Fatura");

Substitua essa linha por algo como

docProps.put(PropertyIds.NAME, "Fatura.pdf");

pmans
Star Contributor
Star Contributor

Não estou a incluir a extensão no "PropertyIds.NAME", visto que para a solução que estou a criar os nomes dos documentos não irão coincidir com o nome do ficheiro e será esta propriedade a ser mostrada no lado do cliente(App), por isso é que não estou a incluir a extensão.

Esta é a única forma que usa de modo a não se "perder" a extensão?

Desde que coloquei a pergunta continuei a pesquisar e encontrei informação (CMIS) de como obter a extensão a associar ao ficheiro em função do mimetype do documento quando quero fazer o download, mas que tem algumas limitações em relação as associações entre mimetypes e extensões, nem sempre as associações são as mais corretas.

Document templateDocument = getDocument(session, idDocument);

String extension=MimeTypes.getExtension(templateDocument.getContentStream().getMimeType());

douglascrp
World-Class Innovator
World-Class Innovator

O nome do documento é o nome que você vai obter quando fizer o download.

Se você precisa exibir algo na aplicação cliente, porque você não utiliza outra propriedade, como título ou descrição?

pmans
Star Contributor
Star Contributor

Já tinha pensado nisso Douglas, mas como sempre. após fazer a minhas investigação, se não fico contente com os resultados, penso sempre que me está a escapar algo. As suas resposta ajudaram a dissipar as duvidas que tinha, obrigado em relação a este assunto.

douglascrp
World-Class Innovator
World-Class Innovator

Só avise depois se conseguiu resolver.

pmans
Star Contributor
Star Contributor

Sim Douglas, consegui resolver, em conversa com a equipa decidi manter o nome e extensão no PropertyIds.NAME, assim nunca se perde a extensão, mas por outro lado esta dúvida deu para compreender a relação que existe no alfresco entre mimetypes e extensões. Obrigado pela sua ajuda.

Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.