You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.1 KiB
82 lines
2.1 KiB
/****************************************************************************** |
|
* |
|
* Copyright: Intellectual Property of Four Elements Capital Pte Ltd, Singapore. |
|
* All rights reserved. |
|
* |
|
******************************************************************************/ |
|
|
|
package com.fe.util; |
|
|
|
import java.io.ByteArrayOutputStream; |
|
import java.io.FileInputStream; |
|
import java.io.OutputStream; |
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
/** |
|
* Image Loader |
|
*/ |
|
public class ImageLoader { |
|
|
|
private HttpServletRequest request=null; |
|
private HttpServletResponse response=null; |
|
|
|
/** |
|
* Constructor |
|
* @param request request |
|
* @param response response |
|
*/ |
|
public ImageLoader(HttpServletRequest request, HttpServletResponse response) { |
|
this.request=request; |
|
this.response=response; |
|
} |
|
|
|
/** |
|
* Push Image |
|
* @throws Exception |
|
*/ |
|
public void pushImage() throws Exception { |
|
try { |
|
|
|
response.setHeader("Content-Disposition", "inline"); |
|
|
|
FileInputStream fin=null; |
|
if(this.request.getParameter("file")!=null && !this.request.getParameter("file").equals("")){ |
|
fin = new FileInputStream(this.request.getParameter("file")); |
|
if(this.request.getParameter("file").toLowerCase().endsWith(".svg")){ |
|
response.setContentType("image/svg+xml"); |
|
|
|
}else{ |
|
response.setContentType("image/png"); |
|
} |
|
}else{ |
|
fin = new FileInputStream("/home/fileserv/Sharing/Public/Research/Monitors/SchedulerActivityMonitor.png"); |
|
response.setContentType("image/png"); |
|
|
|
} |
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
|
byte[] buf = new byte[1024]; |
|
int len; |
|
while ((len = fin.read(buf)) > 0) { |
|
// instead of writing to a ByteArrayOutputStream you can |
|
// write to the FileOutputStream here (see the comments later |
|
// after creating the byte[] variable called data |
|
bos.write(buf, 0, len); |
|
} |
|
byte[] data = bos.toByteArray(); |
|
OutputStream out = response.getOutputStream(); |
|
out.write(data); |
|
out.flush(); |
|
fin.close(); |
|
} catch (Exception e) { |
|
//e.printStackTrace(); |
|
response.setContentType("html/text"); |
|
response.setStatus(500); |
|
} |
|
} |
|
|
|
} |
|
|
|
|
|
|