Perda da extensão (mimetype) do ficheiro

cancel
Showing results for 
Search instead for 
Did you mean: 
pmans
Active Member II

Perda da extensão (mimetype) do ficheiro

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
douglascrp
Advanced II

Re: Perda da extensão (mimetype) do ficheiro

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
Active Member II

Re: Perda da extensão (mimetype) do ficheiro

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
Advanced II

Re: Perda da extensão (mimetype) do ficheiro

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
Active Member II

Re: Perda da extensão (mimetype) do ficheiro

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
Advanced II

Re: Perda da extensão (mimetype) do ficheiro

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
Active Member II

Re: Perda da extensão (mimetype) do ficheiro

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
Advanced II

Re: Perda da extensão (mimetype) do ficheiro

Só avise depois se conseguiu resolver.

pmans
Active Member II

Re: Perda da extensão (mimetype) do ficheiro

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.