2015-08-27 2 views
1

Я создаю файл на сервере в запросе с клиентской стороны. Теперь я хочу отправить этот файл в ответ на ответ AJAX. Ниже приведен код JAVA.Отправка файла в ответ AJAX весной MVC

response.reset(); 
      response.setContentType("application/pdf"); 
      response.setHeader("Content-disposition", "attachment; filename=\"Portfolio.pdf\""); 
      OutputStream output; 
      try { 
       output = response.getOutputStream(); 
       output.write(Util.readFileInBytes("/Portfolio.pdf")); 
       output.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

Теперь, как показать пользователю диалоговое окно «Сохранить как» для сохранения файла. Заранее спасибо за помощь.
Код JavaScript-код, как показано ниже:

$.ajax({ 
      url : "export", 
      dataType : 'text', 
      contentType : 'application/pdf', 
      success: function() { //code to display "Save As" dialog box to user.}}); 
+0

См. Http://stackoverflow.com/questions/12876000/how-to-build-pdf-file-from-binary-string-returned-from-a-web-service-using-javas – guest271314

+0

Спасибо за помощь , Я реализовал решение, указанное в приведенном выше URL-адресе. Но это создает новое окно, в котором нет ничего. Новое окно пустым. –

+0

_ «он создает новое окно, в котором нет ничего. Новое окно пустым». _ Можно создать stacksnippets, jsfiddle.net, чтобы продемонстрировать? См. Также http://stackoverflow.com/questions/28207106/pdf-file-upload-ajax-html, http://stackoverflow.com/a/23987178/. – guest271314

ответ

0

Также см это обсуждение stackoverflow.com/questions/833068/how-to-force-save-as-dialog-box-in-firefox-besides-changing-headers.

Вы можете кодировать файл в base64 строку, отправить его клиенту, а затем присвоить значение location.href и сохранить диалог будет показано пользователю.

Но он не будет работать в IE. Не знаю, каковы ваши требования.

Смежные вопросы