`
lixingju
  • 浏览: 12422 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于s:fileupload的问题

阅读更多
在使用s:fileupload时,提取文件总显示为空,长度为零,其他诸如filename,contenttype等也为Null.这个问题怎么办?谁知道什么原因?
我的用的jboss+seam:
web.xml:
   <context-param>
       <param-name>com.icesoft.faces.uploadDirectory</param-name>
       <param-value>upload</param-value>
   </context-param>
   <context-param>
       <param-name>com.icesoft.faces.uploadMaxFileSize</param-name>
       <param-value>1001048576</param-value>
   </context-param>


    <servlet>
         <servlet-name>uploadServlet</servlet-name>
         <servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
         <load-on-startup> 1 </load-on-startup>
    </servlet>

component.xml:
         <web:multipart-filter create-temp-files="false" 
	                     max-request-size="10485760" 
	                     url-pattern="/*"/>	


backingbean:
@Stateless
@Name("filebean")
public class FileBean implements FileBeanInterface {
	
        @Logger
	private Log log;
	
	@PersistenceContext
	private EntityManager em;

        private FileData filedata=new FileData();
        private String msginfo="";
	//@In(value="#{facesContext}")
	FacesContext facesContext=FacesContext.getCurrentInstance();
        private ExternalContext extCtx=facesContext.getExternalContext();

        private List<FileData> filelist=new ArrayList();
	
	private Long attachmentId;

        public Long getAttachmentid(){
            return attachmentId;
        }
        public void setAttachmentid(Long attachmentid){
            this.attachmentId=attachmentid;
        }
	public String setFiledata(FileData file){
            this.filedata=file;
            return null;
        }
        public FileData getFiledata(){
            return this.filedata;
        }
        public String getMsginfo(){
            msginfo=filedata.getContentType();
            return msginfo;
        }


        public String download(Long id){
            setAttachmentid(id);
            return download();
        }
	public String download() {
		FileData attachment = em.find(FileData.class, attachmentId);
		HttpServletResponse response = (HttpServletResponse)extCtx.getResponse();
		response.setContentType(attachment.getContentType());
                response.addHeader("Content-disposition", "attachment; filename=\"" + attachment.getName() +"\"");
		try {
			ServletOutputStream os = response.getOutputStream();
			os.write(attachment.getData());
			os.flush();
			os.close();
			facesContext.responseComplete();
		} catch(Exception e) {
			log.error("\nFailure : " + e.toString() + "\n");
		}

		return null;
	}

        public String saveFile(){
            try{
            em.persist(filedata);
            filedata=new FileData();
            }catch(Exception ex){

            }

            return null;
        }

        public String deleteFile(){
            FileData to_delete=em.find(FileData.class,attachmentId);
            em.remove(to_delete);
            em.flush();
            getFilelist();
            return null;
        }

        public String deleteFile(Long id){
            setAttachmentid(id);
            return deleteFile();
        }

        public List<FileData> getFilelist(){
            filelist=em.createQuery("select f from FileData f").getResultList();
            return filelist;
        }
        public void setFilelist(List<FileData> filelist){
            this.filelist=filelist;
        }
        


xhtml
        <h:form enctype="multipart/form-data" >
            <s:fileUpload id="fileupload" accept="text/html"
                          data="#{filebean.filedata.data}"
			  contentType="#{filebean.filedata.contentType}"
                          fileName="#{filebean.filedata.name}"
                          fileSize="#{filebean.filedata.size}"/>
            <br/><br/>
            文件名称:<h:outputText value="#{filebean.filedata.name}"/>
            <br/><br/>
            内容类型:<h:outputText value="#{filebean.filedata.contentType}"/>
            <br/><br/>
            文件长度:<h:outputText value="#{filebean.filedata.size}"/>
            <br/><br/>
            <ice:commandButton value="Upload" partialSubmit="true"
		 action="#{filebean.saveFile}"/>
</h:form>


谁能给看一下怎么回事?
分享到:
评论
1 楼 guxiao05 2010-04-12  
strust的文件上传对于命名是有约束的,你可以参考下http://developers.sun.com.cn/blog/functionalca/entry/struts2_文件上传简介

相关推荐

    jquery fileupload

    Features ======== ...* … more at the [upstream's features page](http://aquantum-demo.appspot.com/file-upload#features) Requirements ============ * Django * Python Imaging Library

    struts2的s标签

    &lt;s:file name="fileUpload"/&gt; ``` - **说明**:用于创建文件上传表单元素。 22. **`&lt;s:form&gt;`** - 创建表单。 - **示例**: ```jsp &lt;s:form action="submitForm"&gt; 用户名:&lt;s:textfield name="username"/&gt; ...

    WebWorkTag.chm

    6. 文件上传和下载标签:如`&lt;s:file&gt;`用于处理文件上传,`&lt;s:fileupload&gt;`和`&lt;s:filedownload&gt;`则处理文件的上传和下载。 7. 模板标签:如`&lt;s:include&gt;`和`&lt;s:decorator&gt;`允许在页面中包含其他页面或应用装饰器模式...

    struts2标签解释

    `&lt;s:file&gt;`标签用于文件上传功能,与Struts2的FileUpload拦截器配合使用。 `&lt;s:form&gt;`标签创建表单,它会将表单数据提交到指定的Action。 G. `&lt;s:generator&gt;`,`&lt;s:iterator&gt;`: `&lt;s:generator&gt;`常与`s:iterator`...

    下面就介绍下Struts2每个标签的用法(有错请指正):

    &lt;s:file name="fileUpload" /&gt; ``` ##### 20. `&lt;s:form&gt;` 标签 - **用途**:创建 HTML 的 `&lt;form&gt;` 表单。 - **示例**: ```xml &lt;s:form action="submitForm" theme="simple"&gt; &lt;!-- 表单内容 --&gt; &lt;/s:form&gt; ...

    struts2常用标签

    &lt;s:file name="fileUpload" /&gt; ``` ##### 17. `&lt;s:form action=""&gt;` - **功能**:创建表单并指定处理该表单的Action。 - **示例**: ```xml &lt;s:form action="uploadFile"&gt; &lt;s:file name="fileUpload" /&gt; &lt;s:...

    struts2标签的使用

    - 示例:`&lt;s:file name="fileUpload" /&gt;` - 用途:允许用户上传文件。 ##### 3. 数据展示标签 - **`&lt;s:iterator&gt;`**:遍历集合数据。 - 示例:`&lt;s:iterator value="users"&gt;` - 用途:循环显示集合中的数据项。...

    用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图.docx

    该文档是关于在ASP.NET环境下使用FileUpload控件实现图片上传,并进行图片处理,包括生成缩略图以及添加文字和图片水印的功能。下面将详细解释这个过程中的关键知识点: 1. **FileUpload控件**:ASP.NET中的...

    react-native-fileupload:用于响应本机的多格式文件上传

    支持一次上传多个文件支持文件和字段入门npm install react-native-fileupload --save 的iOS 在XCode中的项目导航器中,右键单击your project ➜ Add Files to [your project's name] 转到node_modules react-...

    fileupload

    // Set the servlet's response type to XML. PrintWriter out = null; String uploadDirectory = this.getServletContext().getInitParameter("UploadDirectory"); if(!uploadDirectory.contains(":")) { ...

    flex多组上传功能

    在Flex中,用户通常通过`&lt;mx:FileUpload&gt;`或`&lt;s:FileUpload&gt;`组件来选择文件。这些组件允许用户选择一个或多个文件,并提供了监听文件选择事件的接口。例如,我们可以监听`change`事件来触发文件的预览或上传操作。 ...

    commons-fileupload-1.2.1.jar commons-io-1.4.jar 上传包

    在实际应用中,还需要考虑文件大小限制、文件类型检查、异常处理等问题。例如,可以设置`&lt;filter-mapping&gt;`中的`maxPostSize`属性限制上传文件大小,使用`FileItem`的`isFormField()`和`getFieldName()`方法检查文件...

    truts2表单标签共46页.pdf.zip

    5. **文件上传**:`s:file`标签用于实现文件上传功能,结合Struts2的FileUpload拦截器,可以处理文件上传的细节,如大小限制、类型检查等。 6. **国际化与本地化**:Struts2的标签支持国际化,可以使用`s:text`或`s...

    struts2中单文件,多文件上传

    &lt;s:form action="fileUpload" method="POST" enctype="multipart/form-data"&gt; &lt;s:file name="uploadFile" label="选择文件"/&gt; &lt;s:submit value="上传"/&gt; &lt;/s:form&gt; ``` 对于多文件上传,只需要将`s:file`标签放入...

    java struts2开发总结

    1. **依赖库**:在使用Struts2进行开发时,需要引入一系列的jar包,例如`commons-logging-1.0.4.jar`、`commons-fileupload-1.2.1.jar`、`freemarker-2.3.13.jar`、`ognl-2.6.11.jar`、`struts2-core-2.1.6.jar`和`...

    Struts2的文件上传

    Struts2是一个流行的Java Web框架,它为开发者提供了一种优雅的方式来构建可维护、结构清晰的Web应用...在实际应用中,还需要考虑文件的合法性检查、错误处理、文件重命名等问题,确保文件上传功能的健壮性和安全性。

    struts中使用Common-fileUpload.的几篇网络文章

    在Struts 2中,可以使用`&lt;s:form&gt;`标签的`enctype="multipart/form-data"`属性创建一个文件上传表单。然后,定义一个Action类,该类需要继承`org.apache.struts2.upload.FileUploadAction`或实现`...

    flash上传工具 修改版 fileUpload flash

    【标题】"Flash上传工具 修改版 FileUpload Flash"是一个针对B/S架构的文件上传解决方案,特别强调了其为修改版,意味着它可能包含了对原始版本的优化或功能增强。此工具利用Flash技术来实现文件上传,可以应用于多...

Global site tag (gtag.js) - Google Analytics