私はPDFを返すように単純スプリングMVC制御方法を有する:スプリングPDFをダウンロードするためのコントローラ、LOCATION.HREF、jQueryのモーダルとし、IE8ヘッダ
@RequestMapping(value="/attachment/portfolios/{investorNum}/reports/{reportId}/periods/{reportingPeriod}")
public ResponseEntity<byte[]> getReportForDownload(@PathVariable String reportId, @PathVariable long investorNum, @PathVariable long reportingPeriod) throws IOException{
InputStream in = servletContext.getResourceAsStream("/sample.pdf");
final HttpHeaders headers = new HttpHeaders();
//headers.setContentType(MediaType.valueOf("application/pdf"));
headers.add("Content-Type", "application/pdf");
headers.add("Content-disposition", "attachment; filename=abcd.pdf");
return new ResponseEntity<byte[]>(IOUtils.toByteArray(in), headers, HttpStatus.CREATED);
}
バネのByteArrayメッセージコンバータ:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<util:list>
<bean id="byteArrayMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
</util:list>
</property>
</bean>
、ダウンロードのためのjQueryのモーダルボックス:
"Download" : function() {
location.href = "./attachment/portfolios/2201/reports/DELINQSUM/periods/1137";
}
ダウンロードボタンが幻想的な作品FF、Chromeではうまくいっていますが、IEではそうではありません。 IEは
と言っています。Internet Explorerはlocalhostから1137をダウンロードできません。
Internet Explorerはこのインターネットサイトを開けませんでした。要求されたサイト は利用できないか、見つからないサイトです。後で にもう一度お試しください。
私はhttp://support.microsoft.com/kb/316431と2のように、ヘッダーに続くが、何も起こりませんし、IEは問題を報告し続けます。
また、私は以下の変更にモーダル内部に埋め込まれた表示用のPDFをストリーミングしていますし、それが正常に動作します:
headers.add("Content-disposition", "inline; filename=abcd.pdf");
私はTomcat上でこれを実行しています。
大変助かりました。