jsp中下载程序问题
我下载了jsp(SUN企业级应用的首选)smartupload类,然后编写了下载程序,如下:
<%@page contentType="text/html;charset=gb2312"%><%@page language="java" import="com.jsp(SUN企业级应用的首选)smart.upload.*"%><jsp(SUN企业级应用的首选):useBean id="mySmartUpload" scope="page" class="com.jsp(SUN企业级应用的首选)smart.upload.SmartUpload"/><%mySmartUpload.initialize(pageContext);
mySmartUpload.downloadFile("d:\111.txt";
%>
运行后,我txt文件中的内容就直接显示在了页面上,zip文件也同样,只不过是乱码,有什么办法不显示而和一般的下载一样呢?
eclipse 回复于:2002-10-18 10:54:22 |
应该是SmartUpload类的问题,jsp(SUN企业级应用的首选)程序没有问题,我感觉 |
huangmw 回复于:2002-10-18 11:27:17 |
这个类是从www.jsp(SUN企业级应用的首选)smart.com站点下载的,不会他们编的类问题吧? 你能提供一个类似这种类给我吗?谢谢了 |
eclipse 回复于:2002-10-18 12:11:30 |
TestFileDownload.jsp(SUN企业级应用的首选)页面的例子: <% // 得到文件名字和路径 String filename = ”MengxianhuiDocTest.doc”; String filepath = ”D:\”; // 设置响应头和下载保存的文件名 response.setContentType(”APPLICATION/OCTET-STREAM”); response.setHeader(”Content-Disposition”, ”attachment; filename=”” + filename + ”””); // 打开指定文件的流信息 java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename); // 写出流信息 int i; while ((i=fileInputStream.read()) != -1) { out.write(i); } fileInputStream.close(); out.close(); %> 值得注意的是:在你要下载的文件内容里,除了文件的内容之外,不应该再附加有其它任何的字符,包括空格和回车换行符。我们有时在编写代码的时候,为了使代码清晰可读,往往会添加一些空格、制表符或者回车换行符,这样虽然看起来比较清晰,但有时可能会得不到正确的结果。比如: <%@ page import=”java.io.*” %> <jsp(SUN企业级应用的首选):useBean id=”MyBeanFromMengxianhui” scope=”page” class=”com.Mengxianhui.DownloadBean” /> 应该写成这样: <%@ page import=”java.io.*” %><jsp(SUN企业级应用的首选):useBean id=”MyBeanFromMengxianhui” scope=”page” class=”com.Mengxianhui.DownloadBean” /> |
eclipse 回复于:2002-10-18 12:13:21 |
请注意:APPLICATION/OCTET-STREAM是设置下载类型 要改成你实际的类型,如excel要写成:application/vnd.ms-excel |
eclipse 回复于:2002-10-18 12:17:39 |
如果不用jsp(SUN企业级应用的首选)smart,你就需要了解浏览器端的编码方式,在传到服务器端时你才能解码。也才可以得到上传文件的相关信息。看下面的代码。 package mshtang.fileUpload; import java.io.*; /**一个存放文件信息的类,包括文件的名称(String), **字段名(String), Content-Type(String)和内容(byte[]) **还提供了一个直接将文件内容保存到一个文件的函数 void saveTo(File f) **可以调用 类{@link ContentFactory}中的适当方法,生成该类的实例。 ** @see ContentFactory ** @see ContentFactory#getFileParameter ** @see ContentFactory#getFileParameterValues **/ public class FileHolder { String contentType; byte[] buffer; String fileName; String parameterName; FileHolder(byte[] buffer, String contentType, String fileName, String parameterName) { this.buffer = buffer; this.contentType = contentType; this.fileName = fileName; this.parameterName = parameterName; } /**把文件的内容存到指定的文件中, **<b>这个方法不会检查这个文件是否可写、是否已经存在。</b> **@param file 目的文件 **@throws 在 I/O 操作中被抛出的 IOException **/ public void saveTo(File file) throws IOException { BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); out.write(buffer); out.close(); } /**把文件的内容存到指定的文件中, **<b>这个方法不会检查这个文件是否可写、是否已经存在。</b> **@param name 目的文件名 **@throws 在 I/O 操作中被抛出的 IOException **/ public void saveTo(String name) throws IOException { saveTo(new File(name)); } /** **返回一个文件内容的字节数组 **@return 一个代表文件内容的字节数组 **/ public byte[] getBytes() { return buffer; } /** **返回该文件在文件上载前在客户端的名称 **@return 该文件在文件上载前在客户端的名称 **/ public String getFileName() { return fileName; } /** **返回该文件的 Content-Type **@return 该文件的 Content-Type **/ public String getContentType() { return contentType; } /** **返回上载该文件时,Html 页面窗体中 file 控件的 name 属性 **@return 返回上载该文件时,Html 页面窗体中 file 控件的 name 属性 **/ public String getParameterName() { return parameterName; } } |
eclipse 回复于:2002-10-18 12:22:补充:Web开发 , Jsp ,
访问www.zzzyk.com 试试 CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络, |