JavaはPDFファイルを処理し、バイナリファイルストリームに変換してデータベースに格納し、フロントエンドでダウンロードを実現する

17686 ワード

JavaはPDFファイルを処理し、バイナリファイルストリームに変換してデータベースに格納し、フロントエンドでダウンロードを実現する



ダウンロード
function down(id, name) f
var xhr a new XMLHttpRequest();
xhr . open( ' post ' , "front/yysd/ download?xh=" + id, true);
xhr . setRequestHeader( "Content -Type" , " application/x-www-from-urlencoded; charset=utf-8");
xhr. responseType = "blob";
xhr onload . function () {
if(this. status === 200) (
var blob = this . response;
if (blob.type == "text/html") {
tip("  ");
return false;
}
var filrName = name + '.pdf' ;
if (window. navigator .msSave0r0penBlob) {
navigator -msSaveBlob(blob, filrName);
}else {
var link = document.createElenent('a');
1ink.href = window.URL.create0bjectURL(blob);
link. download = filrName;
link. click();
$(link) remove();
sindoN.URL.revokeObjectURL(link ,href);
}
}else {
fiframe.tip("    !");
	}
};
xhr. send();
}

バックグラウンドのダウンロード

@RequestMapping(value = "/download" , method = RequestMethod.POST)
@ResponseBody()
public void downloadpdffile(String xh, HttpServletResponse response) {
XxfbJcjb xxfbJcjb = xxfbJcjbService .findXxfbJcjb(xh);
try{
response. addHeader Access-Control- Allow-Origin", "*");
response. addHeader( "Access-Control-Allow-Headers" , "Origin, X-Requested-With, Content - type , Accept");
response. addHeader("Access-Control- Allow-Methods", "GET, POST, PUT, DELETE");
response.reset();
OutputStream outputStream = new BufferingOutputStream(response getoutputStream());
response setContentType(" application/octet- stream");
response. setHeader ("Content -Disposition","attachment;filename="+xxfbJcjb.getJbbt() + ".pdf");
outputStream.write(xxfbJcjb. getJbnr(), 0, xxfbJcjb.getJbnr().length);
outputStream. close();
catch (Exception e){
e. printStackTrace();
	}
}

pdfファイルをバイナリストリームに変換してデータベースに格納
public void pdf() throws Exception{
try {
XxfbJcjb xxfbJcjb = new XxfbJcjb();

File file = new File("C:\\Users\Administrator\Desktopl\pdf\\      .pdf");
xfbJcjb.setJbnr(getBytesFromFile(file));
//getBytesFromFile(file)
xxfbJcjbMapper . insertSelective(xxfbJcjb);
} catch (Exception e) {
LogUtil error(getClass(), ”    ",e);
	}
}

public static byte[] getBytesFromFile(File f ){
if (f = nul1){
return nul1;
}

try{
FileInputStream stream = new FileInputStream(f);
ByteArrayutputstreom out = new
ByteArrayOutputstrean();
byte[] b = nen byte[1000];
int n;
while ((n = stream.read(b) != -1){
out.write(b,0,n);
}
stream.close();
out.close;
return out.toByteArray();
}catch(IOException e){

}
return null ;
	}
}