错误:
严重: Can not find a java.io.InputStream with the name [photoStream] in the invocation stack. Check the <param name="inputName"> tag specified for this action.
2008-4-17 17:04:44 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [photoStream] in the invocation stack. Check the <param name="inputName"> tag specified for this action.
at org.apache.struts2" onclick="tagshow(event)" class="t_tag">struts2.dispatcher.StreamResult.doExecute(StreamResult.java:189)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
问题所在:
第二,对ServletContext的getResourceAsStream方法理解有误,该方法不是从本地路径取文件,而是从web application的路径取文件流。
而且在return行前调用ServletActionContext.getServletContext().getResourceAsStream(path)应该可以发现是空指针
解决方法:
File file = new File(inputPath);
InputStream is= new FileInputStream(file);
分享到:
相关推荐
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
你可以选择将文件保存在硬盘上,或者存入数据库。在Action中,需要编写代码来处理文件的存储逻辑,包括生成唯一的文件名,避免文件重名,以及处理文件路径和权限。 5. **文件下载** 文件下载涉及到生成HTTP响应,...
同时,需要继承`org.apache.struts.upload.FormFile`,该类提供了处理文件上传的方法。 3. **上传过程**:当用户通过HTML表单提交带有文件的请求时,Struts的MultipartRequestHandler会解析请求,将文件内容保存到...
例如,可以使用Struts2的FileUpload插件来处理上传的文件,然后存储在服务器上,之后再提供下载。同时,注意处理可能出现的异常情况,如文件不存在、读取错误等,提供友好的错误提示。 总的来说,Struts2文件下载...
Struts2会自动将上传的文件数据绑定到这些字段上。 4. **表单设置**: 在HTML页面中,创建一个表单并设置`enctype="multipart/form-data"`,这样浏览器会以多部分格式发送文件数据。同时,添加`<s:file>`标签来...
这通常涉及读取FormFile的内容并写入到硬盘上。以下是一个简化的Action方法示例: ```java public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request, ...
基于Struts2和Spring的网络硬盘系统,批量上传文件和在线解压,优秀源代码! 基于Struts2和Spring的网络硬盘系统,批量上传文件和在线解压,优秀源代码! 基于Struts2和Spring的网络硬盘系统,批量上传文件和在线...
它提供了API来解析请求,从中提取上传的文件信息,并将文件存储到服务器上。 2. **Struts1的ActionForm** 在Struts1中,ActionForm对象用于收集表单数据。当用户提交包含文件的表单时,ActionForm会接收到文件内容...
一、Struts文件上传大小限制的配置 1. **struts-default.xml配置** 在Struts2框架中,我们可以通过修改`struts-default.xml`或自定义的配置文件来设置文件上传的最大大小。在`<constant>`标签中,可以设置以下两个...
在Action中,设置响应头以指示浏览器开始下载,然后使用Servlet的`getOutputStream()`方法将文件内容写入响应流。例如: ```java public void download() throws IOException { response.setContentType(...
4. **文件存储**:文件上传后,通常会将其保存到服务器的硬盘上。这需要设定一个临时或永久的文件存储目录,并在Action中编写代码将文件写入该目录。 5. **错误处理**:文件上传过程中可能会遇到各种问题,如文件...
8. **内存和磁盘管理**:Commons FileUpload默认会在内存中处理较小的文件,对于较大的文件则会临时存放到服务器的硬盘上。开发者可以通过配置参数来调整这些行为,比如最大内存大小、临时文件路径等。 综上所述,...
读取上传文件的流,然后将其写入到服务器的指定位置,通常是在硬盘上创建一个新的文件。 5. **临时文件与持久化存储**:上传的文件可能首先被保存在服务器的临时目录,然后根据业务需求决定是否移动到持久化存储,...
当文件大小超过设定阈值时,会将文件保存到硬盘上。 - `ServletFileUpload`: 解析HTTP请求,检测其是否包含文件上传内容,并从中提取`FileItem`对象。 - `FileItem`: 表示上传的一个文件或表单字段,提供了读取内容...
网络硬盘系统是一种便捷的在线存储服务,它允许用户在互联网上保存、管理和共享文件。本项目以"网络硬盘(Struts 2+Hibernate+Spring实现)"为主题,采用三大主流Java框架——Struts 2、Hibernate和Spring进行构建,...
在服务器端,Action类接收到文件后,可以对每个文件进行处理,如保存到硬盘、上传到云存储服务,或者进行其他业务逻辑。这里需要考虑文件大小限制、文件类型检查以及错误处理等安全性问题。例如,可以使用`Part....
“下载server”可能是指系统的文件下载服务器部分,这部分可能使用了HTTP/HTTPS协议,支持断点续传、多线程下载等功能,确保高效稳定的文件传输。同时,为了保护数据安全,可能会有权限控制机制,比如用户身份验证和...
Struts2会自动将文件内容绑定到这些属性上。 ```java private File file; private String fileName; // getters and setters... ``` **配置Action** 在`struts.xml`中配置Action,设置结果类型和映射路径。 ```...
网络硬盘是一种基于互联网的存储服务,用户可以上传、下载、管理个人或共享的文件,它提供了方便的数据备份、分享和协作功能。本项目利用Struts 2、Hibernate和Spring这三大开源框架实现了这样一个网络硬盘系统,这...
接下来,我们探讨Struts文件下载的实现: 1. **Action配置**:在Struts-config.xml中,配置一个处理文件下载的Action,该Action通常会根据文件ID或文件名从服务器的存储位置获取文件。 2. **Action处理**:在...