속도 라이브러리에서 문서 라이브러리의 파일 크기를 구할 수 있습니까? document_library
:Liferay - 템플릿에서 파일 크기 얻기
$f.getType()
#foreach($f in $file.siblings)
<a href="$f.getData()">download</a>
#end
는 값을 반환
나는 다음과 같은 반복적 인 파일과 매우 간단한 템플릿과 콘텐츠 구조를 가지고있다.
감사합니다.
속도 라이브러리에서 문서 라이브러리의 파일 크기를 구할 수 있습니까? document_library
:Liferay - 템플릿에서 파일 크기 얻기
$f.getType()
#foreach($f in $file.siblings)
<a href="$f.getData()">download</a>
#end
는 값을 반환
나는 다음과 같은 반복적 인 파일과 매우 간단한 템플릿과 콘텐츠 구조를 가지고있다.
감사합니다.
Liferay가 템플릿에 삽입 한 변수 $f
에서이 정보에 직접 액세스 할 수 없습니다. 다행히
/documents/[group-id]/[folder-id]/[file-name]
, 우리는이를 통해 우리의 방법을 해킹에 액세스 할 수있는 서비스 API를 사용하여 실제 파일의 보류를 얻을 수 있습니다을 Liferay 6.1의 경우, $f.data
다음과 같은 형태로 문서에 URL을 보유 $serviceLocator
덕분에 속도 템플릿. 우리는이 활성화되면
#
# Input a comma delimited list of variables which are restricted from the
# context in Velocity based Journal templates.
#
journal.template.velocity.restricted.variables=
, 우리는 문서의 부에 대하여 FileEntry
개체를 검색 할 수있는 권한 서비스를 호출 할 수 있습니다 :이 변수를 사용할 수 있으려면 다음과 같은 속성을 구성하여 portal-ext.properties
에서 활성화해야합니다 URL.
#set($url = $f.data)
#set($parts = $stringUtil.split($url, "/"))
#set($group_id = $getterUtil.getLong($parts.get(2)))
#set($folder_id = $getterUtil.getLong($parts.get(3)))
#set($doc_name = $parts.get(4))
#set($docService = $serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLAppLocalService"))
#set($fileEntry = $docService.getFileEntry($group_id, $folder_id, $doc_name))
The file size is: $fileEntry.size
이 시도 URL 드 탈출해야하기 때문에 작동하지 않습니다 그리고 우리는뿐만 아니라 크기를 가지고있다.
#set($url = $httpUtil.decodeURL($ficheiro.getData(), true))
#set($parts = $stringUtil.split($url, "/"))
#set($group_id = $getterUtil.getLong($parts.get(2)))
#set($folder_id = $getterUtil.getLong($parts.get(3)))
#set($doc_name = $parts.get(4))
#set($docService = $serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLAppLocalService"))
#set($fileEntry = $docService.getFileEntry($group_id, $folder_id, $doc_name))
The file size is: $fileEntry.size