public class MyStoredFiles extends HttpServlet implements Servlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
InputStream is = null;
String fileName="",mimeType="";
String fileid=request.getParameter("fileid");
String tmpPath = System.getProperty("tmpfilepath");
try {
String sql = "select * from storedfiles where fileid=?";
conn = OraManager.getConnection(this);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, fileid);
rs = pstmt.executeQuery();
if (rs.next()) {
fileName=rs.getString("filename");
mimeType=rs.getString("content_type");
//write it to the temp area
java.io.File file = new java.io.File(tmpPath+fileName);
FileOutputStream fos = new FileOutputStream(file);
is = rs.getBinaryStream("data");
byte[] buffer = new byte[1000];
while (is.read(buffer) > 0) {
fos.write(buffer);
}
fos.close();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
// Get image contents.
byte[] bytes = new byte[in.available()];
in.read(bytes);
in.close();
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "inline;filename=\""+fileName+"\"");
// Write image contents to response.
response.getOutputStream().write(bytes);
}
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
Bu örnekte link ile gelen paramterelere göre veritabanından dosya çekiyoruz.
Bu servletimzi web.xml de tanımlamamız gerekiyor;
<servlet>
<description></description>
<display-name>MyStoredFiles</display-name>
<servlet-name>MyStoredFiles</servlet-name>
<servlet-class>org.test.servlet.MyStoredFiles</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyStoredFiles</servlet-name>
<url-pattern>/showstoredfile</url-pattern>
</servlet-mapping>
jsp sayfasında görüntüleme is şöyle olabilir;
<h:commandLink value="#{file.name}"
onclick="javascript:window.open(root_folder+'/showpffile?fileid=#{file.fileId}','popupWindow', 'dependent=yes,menubar=no,toolbar=no,location=no,resizable=1,scrollbars=yes');">
</h:commandLink>
Merhaba
YanıtlaSilYazınızda "pdf, doc, excel, jpeg gif veya başka herhangi bir dosya türünü" ekranda gösterebileceğimizi yazmışsınız. Fakat application/pdf tanımlı olduğu için burada word veya excel dokumanları gorunmuyor. Bunları gosterebılmek için application type ne olmalı ?
Teşekkürler...