请大家把的代码详细解释下,谢谢了:
String filename = request.getParameter("b_id");
File fileload = new File("F:/upload", filename + ".pdf");
if (!fileload.exists()) {
%>
<script language="javascript">
alert("该论文不存在,可能未上传!");
window.location="showAThesis.jsp";
</script>
<%
//response.sendRedirect("showAThesis.jsp");
} else {
OutputStream o = response.getOutputStream();
byte b[] = new byte[500];
response.setHeader("Content-disposition",
"attachment;filename=" + filename);
response.setContentType("application/pdf");
long fileLength = fileload.length();
String length = String.valueOf(fileLength);
response.setHeader("Content_Length", length);
FileInputStream in = new FileInputStream(fileload);
int n = 0;
while ((n = in.read(b)) != -1) {
o.write(b, 0, n);
}
}
String filename = request.getParameter("b_id");
File fileload = new File("F:/upload", filename + ".pdf");
if (!fileload.exists()) {
%>
<script language="javascript">
alert("该论文不存在,可能未上传!");
window.location="showAThesis.jsp";
</script>
<%
//response.sendRedirect("showAThesis.jsp");
} else {
OutputStream o = response.getOutputStream();
byte b[] = new byte[500];
response.setHeader("Content-disposition",
"attachment;filename=" + filename);
response.setContentType("application/pdf");
long fileLength = fileload.length();
String length = String.valueOf(fileLength);
response.setHeader("Content_Length", length);
FileInputStream in = new FileInputStream(fileload);
int n = 0;
while ((n = in.read(b)) != -1) {
o.write(b, 0, n);
}
}
你只要把FileInputStream搞清楚就OK了!呵呵!
byte b[] = new byte[500]; // new一个btye数组,用来保存流中的数据的
response.setHeader("Content-disposition", //设置头信息
"attachment;filename=" + filename);
response.setContentType("application/pdf"); //指定类型
long fileLength = fileload.length(); //获得文件的长度
String length = String.valueOf(fileLength); //Long转换成String
response.setHeader("Content_Length", length); //设置文件头信息的长度
FileInputStream in = new FileInputStream(fileload); //获取输入流
int n = 0;
while ((n = in.read(b)) != -1) { //in.read()表示一行行读取,读到末尾为n=-1
o.write(b, 0, n); //写入文件