package org.inbio.m3s.web.dispatcher;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.inbio.m3s.dto.importcontrol.ImportControlDTOFull;
import org.inbio.m3s.service.ImportationManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
/**
*
* @author jgutierrez
*
*/
public class ImportationFileDispatcher extends AbstractController {
public String MEDIA_REAL_BASE_ADDRESS= "/mnt/m3sImages/INBio/MEDIA/IMPORTATION_FILES/";
private ImportationManager importationManager;
/** input values */
private String usernameMetadata = "username";
private String systemFileNameMetadata = "systemFileName";
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ServletOutputStream out = httpServletResponse.getOutputStream(); // binary output
String username = httpServletRequest.getParameter(usernameMetadata);
String systemFileName = httpServletRequest.getParameter(systemFileNameMetadata);
int contentLength = 0;
BufferedInputStream input = null;
ImportControlDTOFull icDTOFull = importationManager.getImportControlDTOFull(username, systemFileName);
String fileAddress = MEDIA_REAL_BASE_ADDRESS + icDTOFull.getCreationDate().toString();
fileAddress = fileAddress.concat(File.separator + icDTOFull.getSystemFileName());
// Open file and prepare file object.
File file = new File(fileAddress);
input = new BufferedInputStream(new FileInputStream(file));
contentLength = input.available();
//has to be gotten from the fileMiMEType metadata value
httpServletResponse.setContentType("application/excel");
// Write file contents to response.
while (contentLength-- > 0) {
out.write(input.read());
}
out.flush();
out.close();
return null;
}
/**
* @return the importationManager
*/
public ImportationManager getImportationManager() {
return importationManager;
}
/**
* @param importationManager the importationManager to set
*/
public void setImportationManager(ImportationManager importationManager) {
this.importationManager = importationManager;
}
/**
* @return the systemFileNameMetadata
*/
public String getSystemFileNameMetadata() {
return systemFileNameMetadata;
}
/**
* @param systemFileNameMetadata the systemFileNameMetadata to set
*/
public void setSystemFileNameMetadata(String systemFileNameMetadata) {
this.systemFileNameMetadata = systemFileNameMetadata;
}
/**
* @return the mEDIA_REAL_BASE_ADDRESS
*/
public String getMEDIA_REAL_BASE_ADDRESS() {
return MEDIA_REAL_BASE_ADDRESS;
}
/**
* @param media_real_base_address the mEDIA_REAL_BASE_ADDRESS to set
*/
public void setMEDIA_REAL_BASE_ADDRESS(String media_real_base_address) {
MEDIA_REAL_BASE_ADDRESS = media_real_base_address;
}
/**
* @return the usernameMetadata
*/
public String getUsernameMetadata() {
return usernameMetadata;
}
/**
* @param usernameMetadata the usernameMetadata to set
*/
public void setUsernameMetadata(String usernameMetadata) {
this.usernameMetadata = usernameMetadata;
}
}