SaveAs Problem

5 отговора 156 прегледа
#1

SaveAs Problem

Pravia programa chrez koiato ot BLOB field moje da se downloadne fail. No kogato se poiavi Save As dialog box-a po defaul e napisano imeto na JSP faila mi, taka: File Name: "download.jsp"

No az iskam tam da e imeto na faila koito e v bazata danni, naprimerFile Name: "clip.zip"

Kak da go napravia?
molia daite niakakav savet

Tova e koda mi:

<%@ page import="java.sql.*"%>
<%@ page import="nl.coretrek.blob.*" %>
<%@ page import="java.sql.*"%>
<%@ page import="oracle.jdbc.driver.*" %>
<%@ page import="java.io.*" %>
<%@ page import="oracle.sql.*" %>

<% Bean4 bBean = new Bean4();%>

<% bBean.setDriver( "oracle.jdbc.driver.OracleDriver" );
bBean.setUrl( "jdbc:oracle:thin:@localhost:1521:CORETREK" );
bBean.setUsername( "scott" );
bBean.setPassword( "tiger" );

String id = request.getParameter("id");

java.sql.Connection db = null;
java.sql.Statement st = null;
java.sql.ResultSet rst = null;
OutputStream os = null;
InputStream in = null;
int intID = 0;

out.println( "before result ");

try {
// check strID - is it numeric
intID = Integer.parseInt( id );

// database connection
db = bBean.getConnection();
st = db.createStatement();
rst = st.executeQuery("SELECT blob_content FROM blob01 WHERE id=" + id);
response.setContentType("application/octet-stream");
os = response.getOutputStream();
out.println( "before result ");
if(rst.next()) {
out.println( " result set next ");
// check for empty stream, and load a default picture
in = rst.getBinaryStream("blob_content");

// loop and read all bytes from "in"

byte[] bytes = new byte[1024];
int intRead = 0;

while((intRead = in.read(bytes))>0) {
os.write(bytes, 0, intRead);
out.println( " while ");
}
os.flush();
} else { // empty recordset
throw new IllegalArgumentException("showPicture1() - There isn't a person with id " + id + " !");
}
} catch ( NumberFormatException nfe ) { out.println( "1 "+nfe.getMessage() );
} catch ( Exception e ) { out.println( " 2 " + e.getMessage() );
} finally {
if(in != null) in.close();
if(os != null) os.close();
if(rst != null) rst.close();
if(st != null) st.close();
if(db != null) db.close();
}
%>

Отговор
в отговор на vladi #2

Re: SaveAs Problem

v sevlet mapprings (web.xml) v konfiguraciata na server-a ili na application-a mapva6
naprimer \downloads\*.* na edin servlet, koito ti si go napisal v tova JSP. posle vzema6 cialoto URL ot request-a i tyrsi6 v bazata po tova, koeto e na miastoto na *.*. Drugoto e sy6toto kakto si go napisal

Отговор
в отговор на vladi #3

Re: SaveAs Problem

fileName = "Ala_bala.txt";

response.setContentType("application/download");
response.setHeader("content-disposition", "inline;filename=" + fileName);

Отговор
в отговор на Download #4

Re: SaveAs Problem

10x за по-елегантното решение на проблема

Отговор
в отговор на Download #5

Re: SaveAs Problem

Evala!!!!

vie javarite ste po pichove ot averite v ASP - predi 2 sedmici post-nah absolutno sashtiya vapros tam. Hem si znaeh che napravo v rubrukata Java trebe da go pusna ...... ama poneje stavashe vapros za ASP stranica ......

Kakto i da e , blagodarya reshihte mi problema

pozdravi

Отговор