Liferay.Upload-Komponente Verwendung für Multi-Datei-Upload
Entwicklung einer custom-portlet, um das hochladen mehrerer Dateien in Liferay 6.2.
Fand die Liferay.Upload-Komponente, während er durch das Liferay-Source-Code im Document Library Portlet am folgenden Speicherort:
Wollen wir die Wiederverwendung dieser Komponente, aber nicht in der Lage zu finden, keine Dokumentation bezüglich der Verwendung.
- Wie verwenden wir die
Liferay.Upload
Komponente? Was tun die einzelnen Eingänge bedeuten & tun? - Können wir re-verwenden Sie diese
Liferay.Upload
custom-portlet? - Keine konkrete Dokumentation über die Verwendung von
Liferay.Upload
? - Alle bereits implementierten portlets finden Sie auf der web mit dem Quellcode im web verfügbar?
Da unten ist der Auszug aus der Verwendung der Liferay-Upload-Komponente:
<aui:script use="liferay-upload">
new Liferay.Upload(
{
boundingBox: '#<portlet:namespace />fileUpload',
deleteFile: '<liferay-portlet:actionURL doAsUserId="<%= user.getUserId() %>"><portlet:param name="struts_action" value="/document_library/edit_file_entry" /><portlet:param name="<%= Constants.CMD %>" value="<%= Constants.DELETE_TEMP %>" /><portlet:param name="folderId" value="<%= String.valueOf(folderId) %>" /></liferay-portlet:actionURL>&ticketKey=<%= ticket.getKey() %><liferay-ui:input-permissions-params modelName="<%= DLFileEntryConstants.getClassName() %>" />',
fileDescription: '<%= StringUtil.merge(PrefsPropsUtil.getStringArray(PropsKeys.DL_FILE_EXTENSIONS, StringPool.COMMA)) %>',
maxFileSize: '<%= PrefsPropsUtil.getLong(PropsKeys.DL_FILE_MAX_SIZE) %> B',
metadataContainer: '#<portlet:namespace />commonFileMetadataContainer',
metadataExplanationContainer: '#<portlet:namespace />metadataExplanationContainer',
namespace: '<portlet:namespace />',
tempFileURL: {
method: Liferay.Service.bind('/dlapp/get-temp-file-entry-names'),
params: {
groupId: <%= scopeGroupId %>,
folderId: <%= folderId %>,
tempFolderName: 'com.liferay.portlet.documentlibrary.action.EditFileEntryAction'
}
},
tempRandomSuffix: '<%= EditFileEntryAction.TEMP_RANDOM_SUFFIX %>',
uploadFile: '<liferay-portlet:actionURL doAsUserId="<%= user.getUserId() %>"><portlet:param name="struts_action" value="/document_library/edit_file_entry" /><portlet:param name="<%= Constants.CMD %>" value="<%= Constants.ADD_TEMP %>" /><portlet:param name="folderId" value="<%= String.valueOf(folderId) %>" /></liferay-portlet:actionURL>&ticketKey=<%= ticket.getKey() %><liferay-ui:input-permissions-params modelName="<%= DLFileEntryConstants.getClassName() %>" />'
}
);
</aui:script>
Jegliche Hinweise sind sehr willkommen!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie es aussieht ist diese Komponente wiederverwendet wird alle über in Liferay. Ich denke, man wiederverwenden konnte es so gut. Ich habe festgestellt folgenden Dokumentation der erste Parameter. Ich hoffe, es wird Ihnen helfen Fortschritt. Viel Glück!
Ich es gab einen Schuss auf Pawel links und gelang in eine Art von POC.
anzeigen.jsp
SingeFileUploadAction.java
Nach dem Versuch, passen diese Komponenten für meine Bedürfnisse, würde ich empfehlen, eine andere Art zu implementieren hochladen der Datei in Liferay.
Ist der Mangel an Dokumentation von Liferay.Upload-Komponente plus der Komplexität der unterliegende code der Liferay-Datei-Upload-portlet macht es ein schwieriger Weg zum anpassen der Datei-Upload implementiert Liferay.
Meine Empfehlung ist folgende: erstellen Sie einen neuen benutzerdefinierten Portlets und verwenden Sie die jQuery-Bibliothek: jQuery File UPload plugin. Besuchen Sie die website hier. Es ist eine gut geschriebene Bibliothek mit anständiger Dokumentation, Sie können es an Ihre Bedürfnisse anpassen, da es deckt einen Großteil der Einstellungen, die Sie erwarten würden, in eine Datei uploader.
Einen überblick, wie die jsp-Ansicht in das portlet wäre:
Wie Sie sehen können, die Nutzung dieser Bibliothek macht eine wirklich einfache Implementierung der Ansicht, das eine Datei uploader. Implementieren Sie danach Ihre portlet-Klasse Aktion wie folgt:
Beim Debuggen paramEnum, es wird ein "Datei" - parameter jedes mal, wenn ein Drag & Drop-Datei verarbeitet wird, für den upload. Dies ist der sequentielle Mechanismus und so, die uploadFiles Aktion ausgelöst wird für jede Datei:
Dies ist meine Umsetzung für mehrere Dateien hochzuladen, die mit liferay-Stil(drag-and-drop oder wählen Sie "Datei" quad). Dieser code wird beim hochladen der Dateien in einen temporären Ordner liferay (DLFolderConstants.DEFAULT_PARENT_FOLDER_ID), dann innerhalb der Methode METHODJAVANAMEManageForm in ClientPortlet.java Sie können Sie verwenden wie Sie wollen. Dies ist das gleiche Verhalten von liferay mehrere Dateien hochzuladen.
Blick.jsp
multipleAttach.jsp:
ClientPortlet.java
Klicken Sie für das Ergebnis zu sehen