我想要在JSP中上传和下载文件的代码。
答案 0 :(得分:5)
首先,以“我想要代码”开始提问并不会产生很多有用的回应。另请参阅this。
关于你的实际问题/问题“如何使用JSP上传和下载文件?”:首先,要使用JSP选择要上传的文件,至少需要一个HTML <input type="file">
元素,它将显示一个文件浏览字段。如HTML forms spec中所述,您需要将请求方法设置为POST
,并将请求编码设置为父multipart/form-data
元素中的<form>
。
由于Servlet API默认不支持上述请求编码,因此您不会在请求参数映射中看到任何内容。要检索上传的文件和其他请求参数,您需要自己解析InputStream
的{{1}}。但幸运的是,有一个常用的API可以从您手中接受宝贵而繁琐的工作:Apache Commons FileUpload。在他们的主页上,您可以在用户指南和常见问题部分找到许多代码示例和重要提示和技巧。仔细阅读它们。基本上,您只需要从HttpServletRequest
对象获取InputStream
并使用通常的Java IO方式将其写入任何FileItem
。
现在下载文件:创建一个OutputStream
,它将文件标识符作为请求参数或pathinfo,并使用通常的Java IO方式将文件读入Servlet
并将其写入{ {1}}的{1}}。您需要至少将InputStream
请求标头设置为OutputStream
,这将显示另存为对话框。最后,只需在下载链接或按钮中调用此HttpServletResponse
即可。
祝你好运,将来请尝试以聪明的方式提出问题。您提出问题的努力越多,您就越会鼓励其他人发布更多代码。我只发布了提示而不是“完整的代码示例”,因此您需要自己解决。