【发布时间】:2018-11-28 07:33:30
【问题描述】:
我有一个要求,如果用户单击按钮,则在 html 页面中调用 javascript 函数,并且在该函数中,ajax 调用将从服务器获取 pdf 文件的内容。
请找到下面的其余控制器
@RequestMapping(value = UriMapping.GET_PDF_PATH, method = RequestMethod.POST)
public @ResponseBody WebServiceResponse getPdfPath(HttpServletRequest req,
@RequestParam String fileName, HttpServletResponse response) {
WebServiceResponse res = new WebServiceResponse();
FileInputStream fis = null;
try {
if(!CommonUtil.isBlank(fileName)) {
String filePath = FieldConstant.PDF_PATH + fileName;
File f = new File(filePath);
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline;filename=" + f.getName() );
fis = new FileInputStream(f);
DataOutputStream os = new DataOutputStream(response.getOutputStream());
response.setHeader("Content-Length", String.valueOf(f.length()));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) >= 0) {
os.write(buffer, 0, len);
}
fis.close();
} else {
res.setSucess(false);
res.setReturnMessage("Something Went Wrong While opening file path !");
}
} catch (Exception e) {
LOGGER.error(e.toString());
res.setSucess(false);
res.setReturnMessage("Something Went Wrong While opening file path !");
}
LOGGER.info("Response" + res.toString());
return res;
}
FieldConstant.PDF_PATH 是所有 pdf 文件所在服务器的固定路径。
下面是客户端 jquery 函数,其中我使用 window.open() 函数在新选项卡中打开 pdf。
function test(count){
var fileName = pdfGlobal[count].name;
if(fileName != undefined && fileName != "") {
var param = {
"fileName" :fileName
}
$.ajax({
url : '../content/getPdfPath',
type : 'post',
dataType : "json",
data : param,
error : function(error,jqXHR, exception) {
errorMessage(exception);
},
success : function(data) {
if (data) {
window.open(data,'_blank');
} else{
errorMessage(data.returnMessage);
}
}
});
}
}
我遇到如下解析错误
现在,正如错误提示,我在响应的第一位找到了 %!
请帮我解决这个问题。我知道这不是一个大问题,但我对出了什么问题感到困惑。根本找不到根本原因……
提前致谢。
【问题讨论】:
标签: javascript java json spring pdf