List of usage examples for com.liferay.portal.kernel.servlet ServletResponseUtil sendFile
public static void sendFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, String fileName, InputStream inputStream, long contentLength, String contentType) throws IOException
From source file:com.liferay.document.library.web.internal.portlet.action.GetFileActionHelper.java
License:Open Source License
protected void getFile(long fileEntryId, long folderId, String name, String title, String version, long fileShortcutId, String uuid, long groupId, String targetExtension, HttpServletRequest request, HttpServletResponse response) throws Exception { if (name.startsWith("DLFE-")) { name = name.substring(5);// w w w .java 2 s . c o m } name = FileUtil.stripExtension(name); FileEntry fileEntry = null; if (Validator.isNotNull(uuid) && (groupId > 0)) { fileEntry = DLAppServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId); folderId = fileEntry.getFolderId(); } if (fileEntryId > 0) { fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } else if (fileShortcutId <= 0) { if (Validator.isNotNull(title)) { fileEntry = DLAppServiceUtil.getFileEntry(groupId, folderId, title); } else if (Validator.isNotNull(name)) { DLFileEntry dlFileEntry = DLFileEntryLocalServiceUtil.fetchFileEntryByName(groupId, folderId, name); if (dlFileEntry == null) { // LPS-30374 List<DLFileEntry> dlFileEntries = DLFileEntryLocalServiceUtil.getFileEntries(folderId, name); if (!dlFileEntries.isEmpty()) { dlFileEntry = dlFileEntries.get(0); } } if (dlFileEntry != null) { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); PermissionChecker permissionChecker = themeDisplay.getPermissionChecker(); DLFileEntryPermission.check(permissionChecker, dlFileEntry, ActionKeys.VIEW); fileEntry = new LiferayFileEntry(dlFileEntry); } } } else { FileShortcut fileShortcut = DLAppServiceUtil.getFileShortcut(fileShortcutId); fileEntryId = fileShortcut.getToFileEntryId(); fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } if (Validator.isNull(version)) { if ((fileEntry != null) && Validator.isNotNull(fileEntry.getVersion())) { version = fileEntry.getVersion(); } else { throw new NoSuchFileEntryException("{fileEntryId=" + fileEntryId + "}"); } } FileVersion fileVersion = fileEntry.getFileVersion(version); InputStream is = fileVersion.getContentStream(true); String fileName = fileVersion.getTitle(); String sourceExtension = fileVersion.getExtension(); if (Validator.isNotNull(sourceExtension) && !fileName.endsWith(StringPool.PERIOD + sourceExtension)) { fileName += StringPool.PERIOD + sourceExtension; } long contentLength = fileVersion.getSize(); String contentType = fileVersion.getMimeType(); if (Validator.isNotNull(targetExtension)) { String id = DLUtil.getTempFileId(fileEntry.getFileEntryId(), version); File convertedFile = DocumentConversionUtil.convert(id, is, sourceExtension, targetExtension); if (convertedFile != null) { fileName = FileUtil.stripExtension(fileName).concat(StringPool.PERIOD).concat(targetExtension); is = new FileInputStream(convertedFile); contentLength = convertedFile.length(); contentType = MimeTypesUtil.getContentType(fileName); } } FlashMagicBytesUtil.Result flashMagicBytesUtilResult = FlashMagicBytesUtil.check(is); if (flashMagicBytesUtilResult.isFlash()) { fileName = FileUtil.stripExtension(fileName) + ".swf"; } is = flashMagicBytesUtilResult.getInputStream(); ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }
From source file:com.liferay.httpservice.servlet.ResourceServlet.java
License:Open Source License
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try {/*from w ww. j av a 2 s. co m*/ String requestURI = getRequestURI(request); int aliasIndex = requestURI.indexOf(_alias); if (aliasIndex == 0) { requestURI = requestURI.substring(_alias.length()); } if (Validator.isNotNull(_name)) { requestURI = _name.concat(requestURI); } URL url = _httpContext.getResource(requestURI); if (url == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } URLConnection urlConnection = url.openConnection(); long lastModified = urlConnection.getLastModified(); if (lastModified > 0) { long ifModifiedSince = request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE); if ((ifModifiedSince > 0) && (ifModifiedSince == lastModified)) { response.setContentLength(0); response.setDateHeader(HttpHeaders.LAST_MODIFIED, lastModified); String ifNoneMatch = request.getHeader(HttpHeaders.IF_NONE_MATCH); if (Validator.isNotNull(ifNoneMatch) && !ifNoneMatch.equals('0')) { response.setHeader(HttpHeaders.ETAG, ifNoneMatch); } response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); return; } } if (lastModified > 0) { response.setDateHeader(HttpHeaders.LAST_MODIFIED, lastModified); } String fileName = getRequestURI(request); int slashIndex = fileName.lastIndexOf(StringPool.SLASH); if (slashIndex != -1) { fileName = fileName.substring(slashIndex + 1); } String contentType = _httpContext.getMimeType(fileName); if (isSupportsRangeHeader(contentType)) { sendFileWithRangeHeader(request, response, fileName, urlConnection.getInputStream(), urlConnection.getContentLength(), contentType); } else { ServletResponseUtil.sendFile(request, response, fileName, urlConnection.getInputStream(), urlConnection.getContentLength(), contentType); } } catch (Exception e) { PortalUtil.sendError(HttpServletResponse.SC_NOT_FOUND, e, request, response); } }
From source file:com.liferay.portlet.documentlibrary.action.GetFileAction.java
License:Open Source License
protected void getFile(long fileEntryId, long folderId, String title, String version, long fileShortcutId, String uuid, long groupId, String targetExtension, ThemeDisplay themeDisplay, HttpServletRequest request, HttpServletResponse response) throws Exception { FileEntry fileEntry = null;/* w w w. ja va 2 s.c o m*/ if (Validator.isNotNull(uuid) && (groupId > 0)) { fileEntry = DLAppServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId); folderId = fileEntry.getFolderId(); } if (fileEntryId > 0) { fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } else if (fileShortcutId <= 0) { if (Validator.isNotNull(title)) { fileEntry = DLAppServiceUtil.getFileEntry(groupId, folderId, title); } } else { DLFileShortcut fileShortcut = DLAppServiceUtil.getFileShortcut(fileShortcutId); fileEntryId = fileShortcut.getToFileEntryId(); fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId); } if (Validator.isNull(version)) { if (Validator.isNotNull(fileEntry.getVersion())) { version = fileEntry.getVersion(); } else { throw new NoSuchFileEntryException(); } } FileVersion fileVersion = fileEntry.getFileVersion(version); InputStream is = fileVersion.getContentStream(true); String fileName = fileVersion.getTitle(); long contentLength = fileVersion.getSize(); String contentType = fileVersion.getMimeType(); if (Validator.isNotNull(targetExtension)) { String id = DLUtil.getTempFileId(fileEntry.getFileEntryId(), version); String sourceExtension = fileVersion.getExtension(); if (!fileName.endsWith(StringPool.PERIOD + sourceExtension)) { fileName += StringPool.PERIOD + sourceExtension; } File convertedFile = DocumentConversionUtil.convert(id, is, sourceExtension, targetExtension); if (convertedFile != null) { fileName = FileUtil.stripExtension(fileName).concat(StringPool.PERIOD).concat(targetExtension); is = new FileInputStream(convertedFile); contentLength = convertedFile.length(); contentType = MimeTypesUtil.getContentType(fileName); } } ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }
From source file:com.liferay.portlet.dynamicdatalists.util.DDLImpl.java
License:Open Source License
public void sendRecordFileUpload(HttpServletRequest request, HttpServletResponse response, DDLRecord record, String fieldName) throws Exception { Serializable fieldValue = record.getFieldValue(fieldName); JSONObject fileJSONObject = JSONFactoryUtil.createJSONObject(String.valueOf(fieldValue)); String fileName = fileJSONObject.getString("name"); String filePath = fileJSONObject.getString("path"); InputStream is = DLStoreUtil.getFileAsStream(record.getCompanyId(), CompanyConstants.SYSTEM, filePath); long contentLength = DLStoreUtil.getFileSize(record.getCompanyId(), CompanyConstants.SYSTEM, filePath); String contentType = MimeTypesUtil.getContentType(fileName); ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }
From source file:com.liferay.portlet.messageboards.action.GetMessageAttachmentAction.java
License:Open Source License
protected void getFile(long messageId, String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception { MBMessage message = MBMessageServiceUtil.getMessage(messageId); String path = message.getAttachmentsDir() + "/" + fileName; InputStream is = DLStoreUtil.getFileAsStream(message.getCompanyId(), CompanyConstants.SYSTEM, path); long contentLength = DLStoreUtil.getFileSize(message.getCompanyId(), CompanyConstants.SYSTEM, path); String contentType = MimeTypesUtil.getContentType(fileName); ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }
From source file:com.liferay.portlet.wiki.action.GetPageAttachmentAction.java
License:Open Source License
protected void getFile(long nodeId, String title, String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception { int pos = fileName.indexOf(CharPool.SLASH); if (pos != -1) { title = fileName.substring(0, pos); fileName = fileName.substring(pos + 1); }/* w w w .j ava 2 s . c o m*/ WikiPage page = WikiPageServiceUtil.getPage(nodeId, title); String path = page.getAttachmentsDir() + "/" + fileName; InputStream is = DLStoreUtil.getFileAsStream(page.getCompanyId(), CompanyConstants.SYSTEM, path); long contentLength = DLStoreUtil.getFileSize(page.getCompanyId(), CompanyConstants.SYSTEM, path); String contentType = MimeTypesUtil.getContentType(fileName); ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType); }
From source file:com.liferay.wiki.web.internal.portlet.action.GetPageAttachmentAction.java
License:Open Source License
protected void getFile(long nodeId, String title, String fileName, int status, HttpServletRequest request, HttpServletResponse response) throws Exception { WikiPage wikiPage = _wikiPageService.getPage(nodeId, title); FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(wikiPage.getGroupId(), wikiPage.getAttachmentsFolderId(), fileName); if ((status != WorkflowConstants.STATUS_IN_TRASH) && fileEntry.isInTrash()) { return;/*from w w w . ja v a 2s.c om*/ } if (fileEntry.isInTrash()) { fileName = TrashUtil.getOriginalTitle(fileEntry.getTitle()); } InputStream is = fileEntry.getContentStream(); FlashMagicBytesUtil.Result flashMagicBytesUtilResult = FlashMagicBytesUtil.check(is); if (flashMagicBytesUtilResult.isFlash()) { fileName = FileUtil.stripExtension(fileName) + ".swf"; } is = flashMagicBytesUtilResult.getInputStream(); ServletResponseUtil.sendFile(request, response, fileName, is, fileEntry.getSize(), fileEntry.getMimeType()); }
From source file:it.smc.calendar.sync.caldav.methods.GetMethodImpl.java
License:Open Source License
@Override public int process(WebDAVRequest webDAVRequest) throws WebDAVException { InputStream is = null;/*from w w w. j av a 2 s .c om*/ try { WebDAVStorage storage = webDAVRequest.getWebDAVStorage(); HttpServletRequest request = webDAVRequest.getHttpServletRequest(); HttpServletResponse response = webDAVRequest.getHttpServletResponse(); Resource resource = storage.getResource(webDAVRequest); if (resource == null) { return HttpServletResponse.SC_NOT_FOUND; } try { is = resource.getContentAsStream(); } catch (Exception e) { if (_log.isErrorEnabled()) { _log.error(e.getMessage()); } } if (is != null) { try { ServletResponseUtil.sendFile(request, response, resource.getDisplayName(), is, resource.getSize(), resource.getContentType()); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn(e); } } return HttpServletResponse.SC_OK; } return HttpServletResponse.SC_NOT_FOUND; } catch (ResourceNotFoundException rnfe) { return HttpServletResponse.SC_NOT_FOUND; } catch (WebDAVException pe) { if (pe.getCause() instanceof PrincipalException) { return HttpServletResponse.SC_UNAUTHORIZED; } else if (pe.getCause() instanceof ResourceNotFoundException) { return HttpServletResponse.SC_NOT_FOUND; } throw pe; } catch (Exception e) { throw new WebDAVException(e); } }