是否有可能请从JSP的二进制文件?(Is it possible to download a bin

2019-06-26 01:58发布

我认为这是完全可能的,但我不知道。

我没有直接使用servlet的可能性,所以我不得不使用JSP(很长的历史,很短的时间,你不想听)

所以我觉得像下面会做什么:

// PSEUDO-CODE:
// source.jsp
Download your file
<a href="file.jsp?xyz">MyDocument.doc</a>


// file.jsp
<%@page content-type="applicaton/somethig-binary-xyz"%>
byte[] data = getBinaryFromSomeWhere();

int start = 0;
int end = data.length < 1024 ? data.length : 1024;
int written = 0;
while( written < data.length ) {
    out.write( data, start, end );
    writtern += end;
    start = end;
    end += written + data.length < 1024 ? data.length : 1024;
}

%>

不要把太多的注意力的代码。 它只是给出了这个概念。 它写入bynary阵列到JSP输出流。

可能吗? 它听起来很合理吗? 是否有已经处理了一个JSTL或其他的事情吗?

Answer 1:

是的,使用“应用程序/八位字节流”为通用二进制数据。 而从进口标签和周围的小脚本删除所有换行符/空白。

<%@ page contentType="applicaton/octet-stream" %><%
byte[] data = getBinaryFromSomeWhere(request.getParameter("xyz"));
response.setHeader("Content-length", Integer.toString(data.length));
response.setHeader("Content-Disposition", "attachment; filename=xyz.bin");
response.getOutputStream().write(data, 0, data.length);
response.getOutputStream().flush();
%>


文章来源: Is it possible to download a binary file from JSP?