55 lines
1.8 KiB
Java
55 lines
1.8 KiB
Java
package org.gcube.portlets.widgets.mpformbuilder.server;
|
|
|
|
import java.io.File;
|
|
import java.nio.file.Files;
|
|
import java.util.List;
|
|
|
|
import javax.servlet.annotation.WebListener;
|
|
import javax.servlet.http.HttpSession;
|
|
import javax.servlet.http.HttpSessionEvent;
|
|
import javax.servlet.http.HttpSessionListener;
|
|
|
|
import org.gcube.portlets.widgets.mpformbuilder.client.ConstantsMPFormBuilder;
|
|
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
@WebListener
|
|
public class UploadedFileHttpSessionListener implements HttpSessionListener {
|
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(UploadedFileHttpSessionListener.class);
|
|
|
|
@Override
|
|
public void sessionDestroyed(HttpSessionEvent event) {
|
|
LOG.info("sessionDestroyed called. Session id is: "+event.getSession().getId());
|
|
|
|
try {
|
|
HttpSession httpSession = event.getSession();
|
|
List<FileUploaded> listFileUploaded = (List<FileUploaded>) httpSession.getAttribute(ConstantsMPFormBuilder.FILE_UPLOADED_SESSION_ATTR);
|
|
if(listFileUploaded!=null) {
|
|
LOG.info("found file uploded in session, removin it");
|
|
for (FileUploaded fileUploaded : listFileUploaded) {
|
|
try {
|
|
File file = new File(fileUploaded.getTempSystemPath());
|
|
boolean result = Files.deleteIfExists(file.toPath());
|
|
LOG.info("File "+fileUploaded.getTempSystemPath() +" deleted? "+result);
|
|
}catch (Exception e) {
|
|
LOG.warn("Error on deleting file: "+fileUploaded, e);
|
|
}
|
|
}
|
|
}
|
|
}catch (Exception e) {
|
|
LOG.warn("Error tryng to delete uploaded file", e);
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void sessionCreated(HttpSessionEvent arg0) {
|
|
LOG.info("sessionCreated called. Session id is: "+arg0.getSession().getId());
|
|
|
|
//session.setMaxInactiveInterval(5);//in seconds
|
|
|
|
}
|
|
}
|