Haben Sie versucht Window.open(ServletUrl, "_parent", "location=no")
?
Und versuchen, die Contenttype in der Antwort auf „application/exe“
Diesen Benutzer auffordern, zu speichern oder zu laufen.
Servlet-Code:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = URLDecoder.decode(request.getPathInfo(), "UTF-8");
File file = new File("/path/to/files", filename);
response.setContentType("application/x-download");
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
response.setHeader("Content-Length", file.length());
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(file));
output = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[8192];
for (int length = 0; (length = input.read(buffer)) > 0;) {
output.write(buffer, 0, length);
}
} finally {
if (output != null) try { output.close(); } catch (IOException ignore) {}
if (input != null) try { input.close(); } catch (IOException ignore) {}
}
}
danke für die Antwort ..aber ich will Anzeige url dnt i user..if tun this..it wird ein neues Fenster mit der richtigen URL öffnen ..i dnt möchte tht ... ich möchte etwas in gwt ..which machen http req zu servlet und bekomme das Objekt und Benutzer shud kann herunterladen .. wie das, was wir in rapidshare sehen ... natürlich ist das zu komplex..aber ich möchte auf ähnliche Weise. – Bhaswanth
@Bhaswanth Bitte versuchen Sie diese Methode. Denn mit dieser Methode geben Sie dem Benutzer einen Servlet-Speicherort und keinen Speicherort.Servlet schreibt die Datei auf den Client. Und wegen des Inhaltstyps wird kein Browserfenster geöffnet, sondern nur das Speichern, Ausführen, Abbrechen des Eingabeaufforderungsdialogs. –
ya..das ist gut..aber ich würde gerne wissen, wie das getan werden kann ..wie kann ich den Download automatisch im Code auslösen ... – Bhaswanth