diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadServlet.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadServlet.java index af7278c..4491c91 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadServlet.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadServlet.java @@ -88,7 +88,7 @@ public class DownloadServlet extends HttpServlet { ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(req, scopeGroupId); StorageUtil filesStorage = new StorageUtil(); ItemDownload itemDownload = filesStorage.getItemDownload(serviceCredentials.getUserName(), itemId); - logger.debug("ItemDownload: "+itemDownload); + logger.debug("ItemDownload: " + itemDownload); if (itemDownload == null) { logger.error("This type of item does not support download operation"); throw new ServletException("This type of item does not support download operation"); @@ -101,31 +101,39 @@ public class DownloadServlet extends HttpServlet { String fileName; if (itemDownload.getItemDescription() == null) { fileName = "filename"; + resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); + resp.setHeader("Content-Type", "application/force-download"); } else { if (itemDownload.getItemDescription().getName() == null || itemDownload.getItemDescription().getName().isEmpty()) { if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription() .getType().compareTo(FolderItem.class.getSimpleName()) == 0) { fileName = "folder.zip"; + resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); + resp.setHeader("Content-Type", "application/zip"); } else { fileName = "filename"; + resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); + resp.setHeader("Content-Type", "application/force-download"); } } else { if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription() .getType().compareTo(FolderItem.class.getSimpleName()) == 0) { fileName = itemDownload.getItemDescription().getName() + ".zip"; + resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); + resp.setHeader("Content-Type", "application/zip"); + } else { fileName = itemDownload.getItemDescription().getName(); + resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); + resp.setHeader("Content-Type", "application/force-download"); } } } - logger.debug("DownloadServlet filename: "+fileName); - resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\""); - resp.setHeader("Content-Type", "application/force-download"); + logger.debug("DownloadServlet filename: " + fileName); stream(itemDownload.getInputStream(), resp.getOutputStream()); } } - } catch (ServiceException e) { logger.error("DownloadServlet():" + e.getLocalizedMessage(), e); throw new ServletException(e.getLocalizedMessage(), e);