更新:
您面临的问题是因为JS无法处理二进制数据。最好的选择是对base64后端服务器上的文件进行编码,然后对base64上的文件进行解码,然后再保存到文件中。例如:
后端服务器:
您的项目中将需要其他依赖项
import org.apache.commons.prec.binary.base64;
@POST@Consumes(MediaType.APPLICATION_JSON)@Produces("application/pdf")public Response downloads() throws IOException { File file = new File("myFile.pdf"); InputStream fileStream = new FileInputStream(file); byte[] data = new byte[1024]; ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int read = 0; while ((read = fileStream.read(data, 0, data.length)) != -1) { buffer.write(data, 0, read); } buffer.flush(); fileStream.close(); ResponseBuilder response = Response.ok(base64.enprebase64(buffer.toByteArray())); response.header("Content-Disposition", "attachment; filename=myFile.pdf"); Response responseBuilder = response.build(); return responseBuilder;}


