package gr.ntua.ivml.mint.actions;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
public class AjaxFileReader extends GeneralAction implements ServletRequestAware,ServletResponseAware
{
private HttpServletRequest request;
private HttpServletResponse response;
@Action(value="AjaxFileReader")
public String execute() throws Exception {
PrintWriter writer = null;
InputStream is = null;
FileOutputStream fos = null;
try {
writer = response.getWriter();
} catch (IOException ex) {
System.out.println(AjaxFileReader.class.getName() + "has thrown an exception: " + ex.getMessage());
}
try {
is = request.getInputStream();
File newTmpFile = File.createTempFile("UploadMap", "cpy");
String fname=newTmpFile.getName();
System.out.println(fname);
fos = new FileOutputStream( newTmpFile );
IOUtils.copy(is, fos);
response.setStatus(HttpServletResponse.SC_OK);
writer.print("{success: true, fname: '"+fname+"'}");
} catch (FileNotFoundException ex) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
writer.print("{success: false}");
System.out.println(AjaxFileReader.class.getName() + "has thrown an exception: " + ex.getMessage());
} catch (IOException ex) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
writer.print("{success: false}");
System.out.println(AjaxFileReader.class.getName() + "has thrown an exception: " + ex.getMessage());
} finally {
try {
fos.close();
is.close();
} catch (IOException ignored) {
}
}
writer.flush();
writer.close();
return NONE;
}
public void setServletRequest(HttpServletRequest request){
this.request = request;
}
public HttpServletRequest getServletRequest(){
return request;
}
public void setServletResponse(HttpServletResponse response){
this.response = response;
}
public HttpServletResponse getServletResponse(){
return response;
}
}