掲示板

урл адрес к временному файлу

9年前 に bcc bcc によって更新されました。

урл адрес к временному файлу

New Member 投稿: 16 参加年月日: 14/03/20 最新の投稿
Привет.


public void addTemp(ActionRequest actionRequest, ActionResponse actionResponse)
			throws Exception {
		
	UploadPortletRequest uploadPortletRequest =	PortalUtil.getUploadPortletRequest(actionRequest);

	ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

		try {
			TempFileUtil.deleteTempFile(themeDisplay.getUserId(),
				getTempImageFileName(actionRequest), getTempImageFolderName());
		}
		catch (Exception e) {
		}

		InputStream inputStream = null;

		try {
			inputStream = uploadPortletRequest.getFileAsStream("fileName");
			String fileName = uploadPortletRequest.getFileName("fileName");
			
			String ert = TempFileUtil.addTempFile(themeDisplay.getUserId(),
				getTempImageFileName(actionRequest), getTempImageFolderName(),
				inputStream);
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			StreamUtil.cleanUp(inputStream);
		}
		
	}


временный файл физически сохраняется в data\document_library\0\0\liferay_temp\com.tt.editprofile.EditProfile\10405\10153_temp.tmp\


Вопрос такой, как получить его урл адрес, что бы в тег <img src> поставить?
thumbnail
9年前 に Alexey Melnikov によって更新されました。

RE: урл адрес к временному файлу

Regular Member 投稿: 108 参加年月日: 12/03/27 最新の投稿
Попробуйте что-то вроде этого:

com.liferay.portlet.documentlibrary.util.DLUtil.getImagePreviewURL(FileEntry, FileVersion, ThemeDisplay)
com.liferay.portlet.documentlibrary.util.DLUtil.getFileEntryImage(FileEntry, ThemeDisplay)


Или другие методы из этого класса
9年前 に bcc bcc によって更新されました。

RE: урл адрес к временному файлу

New Member 投稿: 16 参加年月日: 14/03/20 最新の投稿
Попробую.

Но мне кажется, даже если получу урл адрес, доступа наверно все равно не будет. Наверно нужно через public void serveResource() вытаскивать?
thumbnail
9年前 に Alexey Melnikov によって更新されました。

RE: урл адрес к временному файлу

Regular Member 投稿: 108 参加年月日: 12/03/27 最新の投稿
Это уже зависит от настроенных прав доступа до этого файла в библиотеке документов.
Если вы хотите прочитать файл с файловой системы и отдать в виде байтов - то тут да, только serveResource().
9年前 に bcc bcc によって更新されました。

RE: урл адрес к временному файлу

New Member 投稿: 16 参加年月日: 14/03/20 最新の投稿
Не могу достучатся до метода serveResource().

<portlet:resourceurl var="getTempImageFileURL">
	<portlet:param name="<%= Constants.CMD %>" value="<%= Constants.GET_TEMP %>" />
	<portlet:param name="p_u_i_d" value="<%= String.valueOf(selUser.getUserId()) %>" />
</portlet:resourceurl>


а портлет молчит

public void serveResource(
			PortletConfig portletConfig, ResourceRequest resourceRequest,
			ResourceResponse resourceResponse)
		throws Exception {
		System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
thumbnail
9年前 に Alexey Melnikov によって更新されました。

RE: урл адрес к временному файлу

Regular Member 投稿: 108 参加年月日: 12/03/27 最新の投稿
Не забывайте добавлять в начале страницы

<portlet:defineObjects/>

И убедитесь, что в вашем портлете у метода нужен аргумент PortletConfig.

Вот например подобное решение https://www.liferay.com/community/forums/-/message_boards/message/3345755
9年前 に bcc bcc によって更新されました。

RE: урл адрес к временному файлу

New Member 投稿: 16 参加年月日: 14/03/20 最新の投稿
спасибо. Все получилось