SmartGWT 3.0
v8.2p_2012-10-11/PowerEdition Deployment (built 2012-10-11)
Hello,
I am downloading files from the server via DMI and I am stuck on the IE Error attached ("IE cannot download IDACall ...")
When this error occurs, my application is non-responsive and I have to hit refresh. Upon refresh, it would appear that the download works as expected without IE errors.
Looking this error up online, I did find some stuff with regards to downloading files over https with cache preventing headers but unfortunately that is not my case.
I am sure that the following DMI method executes successfully with no exceptions thrown.
Below is the piece of code on the front end that makes the request
This is obviously not a defect with regards to SmartGWT rather than me missing something. Maybe configuration wise?
Any suggestions would be much appreciated
Regards,
Stathis
v8.2p_2012-10-11/PowerEdition Deployment (built 2012-10-11)
Hello,
I am downloading files from the server via DMI and I am stuck on the IE Error attached ("IE cannot download IDACall ...")
When this error occurs, my application is non-responsive and I have to hit refresh. Upon refresh, it would appear that the download works as expected without IE errors.
Looking this error up online, I did find some stuff with regards to downloading files over https with cache preventing headers but unfortunately that is not my case.
I am sure that the following DMI method executes successfully with no exceptions thrown.
Code:
public void downloadFile(final DSRequest dsRequest,
final HttpServletRequest request)
{
dsRequest.rpc.doCustomResponse();
final HttpServletResponse servletResponse =
dsRequest.rpc.getContext().response;
long fileId = 0;
if(dsRequest.getCriteria().get("fileId") != null &&
!"".equals(dsRequest.getCriteria().get("fileId").toString()))
{
fileId = Long.parseLong(dsRequest.getCriteria().get("fileId").toString());
}
AssociatedFileDto fileDto = null;
try
{
fileDto = situationService.retrieveAssociatedFileById(fileId);
if(fileDto != null)
{
final byte[] bytes = fileDto.getData();
final String filename = fileDto.getFileName();
servletResponse.setHeader("Pragma", "private");
servletResponse.setHeader("Cache-Control", "private, must-revalidate");
if("text/plain".equals(fileDto.getMimeType()))
{
servletResponse.setContentType("text/html");
}
else
{
servletResponse.setContentType(fileDto.getMimeType());
}
servletResponse.setHeader("Content-Disposition", "attachment; filename="+ filename);
servletResponse.setContentLength(bytes.length);
servletResponse.getOutputStream().write(bytes);
}
}
catch (final Exception e)
{
logger.error("There was an error while retrieving associated file with id: {}",fileId,e);
}
}
Code:
DSRequest requestProperties = new DSRequest();
requestProperties.setDownloadResult(true);
requestProperties.setOperationId("downloadFile");
DataSourceFactory.getSitDetailsAssoFilesDataSource()
.fetchData(new Criteria("fileId", fileId),null,requestProperties);
Any suggestions would be much appreciated
Regards,
Stathis