List of usage examples for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT
String CONTENT_DISPOSITION_ATTACHMENT
To view the source code for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT.
Click Source Link
From source file:com.liferay.adaptive.media.web.internal.servlet.AdaptiveMediaServlet.java
License:Open Source License
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try {//from w w w . j av a 2 s . c o m AdaptiveMediaRequestHandler requestHandler = _adaptiveMediaRequestHandlerLocator .locateForPattern(_getRequestHandlerPattern(request)); if (requestHandler == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); return; } Optional<AdaptiveMedia<?>> adaptiveMediaOptional = requestHandler.handleRequest(request); AdaptiveMedia<?> adaptiveMedia = adaptiveMediaOptional .orElseThrow(AdaptiveMediaException.AdaptiveMediaNotFound::new); Optional<Integer> contentLengthOptional = adaptiveMedia .getValueOptional(AdaptiveMediaAttribute.contentLength()); Integer contentLength = contentLengthOptional.orElse(0); Optional<String> contentTypeOptional = adaptiveMedia .getValueOptional(AdaptiveMediaAttribute.contentType()); String contentType = contentTypeOptional.orElse(ContentTypes.APPLICATION_OCTET_STREAM); Optional<String> fileNameOptional = adaptiveMedia.getValueOptional(AdaptiveMediaAttribute.fileName()); String fileName = fileNameOptional.orElse(null); boolean download = ParamUtil.getBoolean(request, "download"); if (download) { ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(), contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT); } else { ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(), contentLength, contentType); } } catch (AdaptiveMediaException.AdaptiveMediaNotFound amnf) { response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); } catch (Exception e) { Throwable cause = e.getCause(); if (cause instanceof PrincipalException) { response.sendError(HttpServletResponse.SC_FORBIDDEN, request.getRequestURI()); } else { response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI()); } } }
From source file:com.liferay.adaptive.media.web.internal.servlet.AMServlet.java
License:Open Source License
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try {/* w ww.java 2 s .c om*/ AMRequestHandler amRequestHandler = _amRequestHandlerLocator .locateForPattern(_getRequestHandlerPattern(request)); if (amRequestHandler == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); return; } Optional<AdaptiveMedia<?>> adaptiveMediaOptional = amRequestHandler.handleRequest(request); AdaptiveMedia<?> adaptiveMedia = adaptiveMediaOptional.orElseThrow(AMException.AMNotFound::new); Optional<Long> contentLengthOptional = adaptiveMedia .getValueOptional(AMAttribute.getContentLengthAMAttribute()); long contentLength = contentLengthOptional.orElse(0L); Optional<String> contentTypeOptional = adaptiveMedia .getValueOptional(AMAttribute.getContentTypeAMAttribute()); String contentType = contentTypeOptional.orElse(ContentTypes.APPLICATION_OCTET_STREAM); Optional<String> fileNameOptional = adaptiveMedia .getValueOptional(AMAttribute.getFileNameAMAttribute()); String fileName = fileNameOptional.orElse(null); boolean download = ParamUtil.getBoolean(request, "download"); if (download) { ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(), contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT); } else { ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(), contentLength, contentType); } } catch (AMException.AMNotFound amnf) { response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); } catch (Exception e) { Throwable cause = e.getCause(); if (cause instanceof PrincipalException) { response.sendError(HttpServletResponse.SC_FORBIDDEN, request.getRequestURI()); } else { response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI()); } } }
From source file:com.liferay.document.library.web.internal.portlet.action.DownloadEntriesMVCResourceCommand.java
License:Open Source License
protected void downloadFileEntries(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY); long folderId = ParamUtil.getLong(resourceRequest, "folderId"); File file = null;//from ww w .ja v a2 s. c om InputStream inputStream = null; try { List<FileEntry> fileEntries = ActionUtil.getFileEntries(resourceRequest); List<FileShortcut> fileShortcuts = ActionUtil.getFileShortcuts(resourceRequest); List<Folder> folders = ActionUtil.getFolders(resourceRequest); if (fileEntries.isEmpty() && fileShortcuts.isEmpty() && folders.isEmpty()) { return; } else if ((fileEntries.size() == 1) && fileShortcuts.isEmpty() && folders.isEmpty()) { FileEntry fileEntry = fileEntries.get(0); PortletResponseUtil.sendFile(resourceRequest, resourceResponse, fileEntry.getFileName(), fileEntry.getContentStream(), 0, fileEntry.getMimeType(), HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT); } else if ((fileShortcuts.size() == 1) && fileEntries.isEmpty() && folders.isEmpty()) { FileShortcut fileShortcut = fileShortcuts.get(0); FileEntry fileEntry = _dlAppService.getFileEntry(fileShortcut.getToFileEntryId()); PortletResponseUtil.sendFile(resourceRequest, resourceResponse, fileEntry.getFileName(), fileEntry.getContentStream(), 0, fileEntry.getMimeType(), HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT); } else { String zipFileName = getZipFileName(folderId, themeDisplay); ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter(); for (FileEntry fileEntry : fileEntries) { zipFileEntry(fileEntry, StringPool.SLASH, zipWriter); } for (FileShortcut fileShortcut : fileShortcuts) { FileEntry fileEntry = _dlAppService.getFileEntry(fileShortcut.getToFileEntryId()); zipFileEntry(fileEntry, StringPool.SLASH, zipWriter); } for (Folder folder : folders) { zipFolder(folder.getRepositoryId(), folder.getFolderId(), StringPool.SLASH.concat(folder.getName()), zipWriter); } file = zipWriter.getFile(); inputStream = new FileInputStream(file); PortletResponseUtil.sendFile(resourceRequest, resourceResponse, zipFileName, inputStream, ContentTypes.APPLICATION_ZIP); } } finally { StreamUtil.cleanUp(inputStream); if (file != null) { file.delete(); } } }
From source file:com.liferay.marketplace.store.web.internal.portlet.RemoteMVCPortlet.java
License:Open Source License
protected void remoteServeResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY); OAuthRequest oAuthRequest = new OAuthRequest(Verb.GET, getServerPortletURL()); setRequestParameters(resourceRequest, resourceResponse, oAuthRequest); addOAuthParameter(oAuthRequest, "p_p_lifecycle", "2"); addOAuthParameter(oAuthRequest, "p_p_resource_id", resourceRequest.getResourceID()); Response response = getResponse(themeDisplay.getUser(), oAuthRequest); String contentType = response.getHeader(HttpHeaders.CONTENT_TYPE); if (contentType.startsWith(ContentTypes.APPLICATION_OCTET_STREAM)) { String contentDisposition = response.getHeader(HttpHeaders.CONTENT_DISPOSITION); int contentLength = GetterUtil.getInteger(response.getHeader(HttpHeaders.CONTENT_LENGTH)); PortletResponseUtil.sendFile(resourceRequest, resourceResponse, getFileName(contentDisposition), response.getStream(), contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT); } else {/*from w w w.j a v a 2 s .c o m*/ resourceResponse.setContentType(contentType); PortletResponseUtil.write(resourceResponse, response.getStream()); } }