如何在execute()
课程的Action
方法中阅读上传文件的内容?我能够在服务器上传文件,但不知道如何阅读该文件的内容。
我们必须先将其保存在服务器上吗?或者我们可以直接阅读它吗?
答案 0 :(得分:4)
选项1:创建servlet
我建议您使用apache commons file upload。此链接提供了有关如何使用FileItem处理上载文件(如果文件大小足够小,可将其写入磁盘或在内存中读取)的示例。可以找到另一个相关示例here。
选项2:使用struts s:file
标记
正如@BalusC在下面的评论中提到的,struts有一个使用s:file标记库的内置文件上传过程,并提供了使用它的教程here。本质上,文件上传到临时目录。但是,您可以通过在struts.multipart.saveDir
文件中设置default.properties
属性的值来覆盖它。此链接还提到使用Apache FileUtils来处理上传的文件,这对于任何文件I / O工作来说都是一个非常方便的库。
答案 1 :(得分:3)
http://java.dzone.com/articles/struts2-tutorial-part-67在这里,他解释了如何进行非常清晰和详细的上传
答案 2 :(得分:2)
以下是提供Struts2的标准方法,例如:
http://struts.apache.org/2.0.14/docs/file-upload.html
它非常简单和优雅(不需要混淆servletRequest.getRealPath("/")
以及其他由hoss链接的示例。)
通过使用<s:file>
标记(和适当的拦截器),Struts2可以完成所有脏工作并将(临时)上传的文件作为动作中的File
字段提供给您;您可以像打开任何文件一样打开或移动,或其他任何内容。