程序代码<%......%><%.....%>之间不能有东西间隔就不会出错了。要是<%......%><%.....%>之间有空格:<%......%>空格<%.....%>
或者回车:<%......%>回车<%.....%>
或者其他:<%......%>其他<%.....%>
就会出现这种错误要把jsp页中所有的空行删除
执行下载的页面,在Java脚本范围外(即<% ... %>之外),不要包含HTML代码、空格、回车或换行等字符,有的话将不能正确下载。不信的话,可以在源码中%><%之间加入一个换行符,下载一下,保证出错。因为它影响了返回给浏览器的数据流,导致解析出错。
改为servlet好一点
或者回车:<%......%>回车<%.....%>
或者其他:<%......%>其他<%.....%>
就会出现这种错误要把jsp页中所有的空行删除
执行下载的页面,在Java脚本范围外(即<% ... %>之外),不要包含HTML代码、空格、回车或换行等字符,有的话将不能正确下载。不信的话,可以在源码中%><%之间加入一个换行符,下载一下,保证出错。因为它影响了返回给浏览器的数据流,导致解析出错。
改为servlet好一点
解决方案 »
- 初学struts2 配置到tomcat服务器出现 Error filterStart错误
- 请问各位大侠,Flex怎么学?
- ---请各位大侠帮忙了---
- java命令行如何包括资源文件夹?
- 点击按钮无法实现页面跳转?(貌似路径不对)
- 急!!!!!!hibernate中如何实现级联删除呀!
- swing相关问题,请求帮助
- myeclipse中DBbrowser里不能加载表?
- 关于HttpSessionListener类的监听问题
- 数据库处理问题
- 問一個struts基礎問題,String a =(String)((PersonBean)form).getUsername();
- hibernate问题!!急呀(在线等答案)
su.initialize(pageContext);
su.setContentDisposition(null);
String fpath = new String(request.getParameter("fpath").getBytes("ISO-8859-1"));
String fname = new String(request.getParameter("fname").getBytes("ISO-8859-1"));
su.downloadFile(fpath + fname);
下载不要用组件也可以的!
东西不要过多依赖组件!
if(!file.exists()) {out.println("文件不存在!");return;} out.clear();
response.setContentType("application/x-zip-compressed");
response.setHeader("Content-disposition",filename="+new String(file.getName().getBytes(),"ISO8859_1"));
DataInputStream dis=new DataInputStream(new FileInputStream(file));
OutputStream os=response.getOutputStream(); byte[] buf=new byte[1024];
int left=(int)file.length();
int read=0;
while(left>0)
{read=dis.read(buf);
left-=read;
os.write(buf,0,read);
}
dis.close();
os.close();
out.close();
return;
注意最后一行return;如果是在JSP代码中,return;之后不要有空行,否则编译通不过。
也可以使用if(true) return;
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
String fileName=(String)request.getParameter("fileName");
out.println(fileName); SmartUpload su=new SmartUpload();
javax.servlet.jsp.PageContext pageContext =javax.servlet.jsp.JspFactory.getDefaultFactory().getPageContext(this,request,response, null, true, 8192, true);
su.initialize(pageContext);
su.setContentDisposition(null); try
{
su.downloadFile("Upload/Files/"+fileName);
}
catch(Exception e)
{
e.printStackTrace();
}
.....什么也不出现,奇怪然后我按tom2005(快乐着)把原来的download.jsp文件里的任何空格、回车去掉,成功!问题虽然解决了,但是为什么这个Servelt不能工作呢?
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//response.setContentType(CONTENT_TYPE);
//PrintWriter out = response.getWriter();
String fileName=(String)request.getParameter("fileName");
//out.println(fileName); SmartUpload su=new SmartUpload();
javax.servlet.jsp.PageContext pageContext =javax.servlet.jsp.JspFactory.getDefaultFactory().getPageContext(this,request,response, null, true, 8192, true);
su.initialize(pageContext);
su.setContentDisposition(null); try
{
su.downloadFile("Upload/Files/"+fileName);
}
catch(Exception e)
{
e.printStackTrace();
}