【发布时间】:2010-12-14 13:05:24
【问题描述】:
我想要在 JSP 中上传和下载文件的代码。
【问题讨论】:
-
好吧,只需添加一个文件链接即可下载。我不明白...
-
可能需要明确的 MIME 类型的应用程序/二进制文件,需要 JSP 页面。
我想要在 JSP 中上传和下载文件的代码。
【问题讨论】:
首先,以“我想要代码”开头的问题在这里不会产生太大的帮助。另见this。
关于您的实际问题/问题“如何使用 JSP 上传和下载文件?”:首先,要使用 JSP 选择要上传的文件,您至少需要一个 HTML <input type="file"> 元素,该元素将显示文件浏览场地。如HTML forms spec 中所述,您需要在父元素<form> 中将请求方法设置为POST,并将请求编码设置为multipart/form-data。
由于 Servlet API 默认不支持上述请求编码,因此您不会在请求参数映射中看到任何内容。取回上传的文件和其他请求参数,需要自己解析HttpServletRequest的InputStream。但幸运的是,有一个常用的 API 可以让您摆脱宝贵而乏味的工作:Apache Commons FileUpload。在他们的主页上,您可以在用户指南和常见问题部分找到大量代码示例和重要提示和技巧。仔细阅读它们。基本上你只需要从FileItem 对象中获取InputStream 并使用通常的Java IO 方式将其写入任何OutputStream 以符合您的喜好。
现在下载文件:创建一个Servlet,它将文件标识符作为请求参数或路径信息,并使用通常的Java IO方式将文件读入InputStream并将其写入OutputStream HttpServletResponse。您至少需要将Content-Disposition 请求标头设置为attachment,这将显示另存为 对话框。最后只需在下载链接或按钮中调用Servlet。
祝你好运,以后请尝试以聪明的方式提出问题。你提出问题的努力越多,你就越会鼓励其他人发布更多代码。我只发布了提示而不是“完整的代码示例”,因此您需要自己解决。
【讨论】: