1 package com.liferay.portlet.documentlibrary.conversion.util;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
9 import com.liferay.portal.kernel.util.FileUtil;
10 import com.liferay.portal.kernel.util.MimeTypesOverrideUtil;
11 import com.liferay.portal.model.User;
12 import com.liferay.portal.service.ServiceContext;
13 import com.liferay.portlet.documentlibrary.DuplicateFileException;
14 import com.liferay.portlet.documentlibrary.FileSizeException;
15 import com.liferay.portlet.documentlibrary.folder.service.DLFolderLocalServiceUtil;
16 import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil;
19 public class ThreadConvertFile extends Thread{
22 private String fileName;
23 private String fileTitle;
24 private String originalTitle;
25 private String description;
26 private long folderId;
27 private InputStream is;
28 private String sourceExtension;
29 private String targetExtension;
30 private Map<String, String> parameters;
32 public ThreadConvertFile(User user, String fileName, String fileTitle, String originalTitle, String description, long folderId, InputStream is, String sourceExtension, String targetExtension, Map<String, String> parameters) {
34 this.fileName = fileName;
35 this.fileTitle = fileTitle;
36 this.originalTitle = originalTitle;
37 this.description = description;
38 this.folderId = folderId;
40 this.sourceExtension = sourceExtension;
41 this.targetExtension = targetExtension;
42 this.parameters = parameters;
46 //Conversion du fichier
49 File file = ENTDocumentConversionServiceUtil.convert(fileName, is, sourceExtension, targetExtension, parameters);
51 InputStream convertIS = new FileInputStream(file);
55 } catch (IOException e) {}
57 byte[] convertByteArray = FileUtil.getBytes(convertIS);
61 } catch (IOException e) {}
63 long groupId = DLFolderLocalServiceUtil.getDLFolder(folderId).getGroupId();
65 boolean finished = false;
69 // Set des permissions par defaut pour le cartable
70 ServiceContext serviceContext = new ServiceContext();
71 serviceContext.setAddGroupPermissions(true);
72 serviceContext.setAddGuestPermissions(true);
74 String contentType = MimeTypesOverrideUtil.getContentType(fileName);
76 if (fileName.endsWith("mp4")) {
77 contentType="video/mp4";
78 } else if (fileName.endsWith("mp3")) {
79 contentType="audio/mp3";
82 while (!finished && count<50) {
84 name = originalTitle+suffixe+ "." + targetExtension;
85 DLAppLocalServiceUtil.addFileEntry(
91 //MimeTypesOverrideUtil.getContentType(is, fileName),
98 } catch (DuplicateFileException exception) {
100 suffixe = " (" + count + ")";
101 } catch (FileSizeException e) {
104 } catch (Exception e1) {
106 e1.printStackTrace();
110 } catch (IOException e) {}
111 } catch (Exception e) {
112 System.out.println("ERREUR DE THREAD ThreadConvertFile");