/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
// www.projectforge.org
//
// Copyright (C) 2001-2014 Kai Reinhard (k.reinhard@micromata.de)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////
package org.projectforge.web.imagecropper;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.projectforge.user.PFUserDO;
import org.projectforge.web.UserFilter;
import org.projectforge.web.core.ResponseUtils;
/**
* Servlet Funktion: Download der Daten als Image (croppedimage) Wird benötigt um Bild auf lokalem Rechner zu speichern. Dieses Servlet wird
* angesprochen, nachdem der User zu Beginn ein Bild von seinem lokalen System ausgewählt hat und es über UploadImageFileTemporary
* hochgeladen wurde.
*
*/
public class DownloadImageFile extends HttpServlet
{
private static final long serialVersionUID = 7778310216427808799L;
private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(DownloadImageFile.class);
protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException
{
log.debug("Start doPost");
final PFUserDO user = UserFilter.getUser(request);
if (user == null) {
log.warn("Calling of UploadImageFileTemp without logged in user.");
return;
}
try {
String filename = "image";
// request.getParameter("filedirectory") != null) {
if (request.getParameter("filename") != null) {
filename = request.getParameter("filename");
}
final File imageFile = ImageCropperUtils.getTempFile(user);
log.info("Reading temporary file: " + imageFile.getAbsolutePath());
final byte[] puffer = FileUtils.readFileToByteArray(imageFile);
ResponseUtils.streamToOut(filename, puffer, response, request.getSession().getServletContext(), true);
log.info("Deleting temporary file: " + imageFile.getAbsolutePath());
imageFile.delete();
} catch (Exception ex) {
log.warn("Failure reading the request");
log.warn(ex.getMessage(), ex);
}
}
}