论坛首页 Java企业应用论坛

用webwork的fileUploadInterceptor上传文件的问题

浏览 8662 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-11  
依照webwork的文档,写了一个简单的文件上传的例子,发现了一个奇怪的问题。当上传一个文件时,一切正常。然而当同时上传多个文件时,却发现只有第一个文件能够正确上传,而其它的文件被忽略了,服务器根本没有接收。

文件上传用的是pell,多文件上传时,在Action中用File[]来接收,却发现File[]的长度永远是1。

于是我将webwork源码中自带的webwork-example部署到tomcat下,运行fileupload的例子,发现log4j在控制台上同样只打出一个文件信息。

有这方面经验的朋友介绍一下好吗?
   发表时间:2005-07-12  
多文件上传??

记不清楚webwork的cos支持不支持了(似乎是不支持),但是默认的pell肯定是不支持的。多文件上传建议用jakarta。


#webwork.multipart.parser=cos
#webwork.multipart.parser=jakarta
webwork.multipart.parser=pell
0 请登录后投票
   发表时间:2005-07-12  
尝试了一下更换webwork.multipart.parser,cos,pell,jakarta都试了一下,似乎只有jakarta支持多文件上传,郁闷!
0 请登录后投票
   发表时间:2005-07-12  
的确如此,jakarta才支持多文件上传。

另外,好象cos、pell不能处理null(也就你不上传文件)。
0 请登录后投票
   发表时间:2005-07-13  
webwork.multipart.parser=com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest
0 请登录后投票
   发表时间:2005-07-30  
jakarta 不能传来原始文件的名称?
0 请登录后投票
   发表时间:2005-08-03  
tiyi 写道
jakarta 不能传来原始文件的名称?


可以啊

我使用webwork 2.1.7

webwork.properties相关配置如下:
webwork.locale=zh_CN

webwork.multipart.parser=jakarta

webwork.i18n.encoding = GBK



action如下:

public class FileUploadAction extends ActionSupport
{

    private String name;

    File file;

    String fileContentType;

    String fileFileName;

    public String execute(); throws Exception
    {

        //以下为保存文件,视情况修改
        if(null!=file);
        {
            FileOutputStream outputStream = new FileOutputStream("d:/temp/demo_" + fileFileName);;

            FileInputStream fileIn = new FileInputStream(file);;

            byte[] buffer = new byte[1024];

            int len;
            while ((len = fileIn.read(buffer);); > 0); 
            {
                outputStream.write(buffer, 0, len);;
            }
            
            fileIn.close();;
            outputStream.close();;
            
        }
        

        return SUCCESS;
    }



页面如下:

<%@ page contentType="text/html; CHARSET=utf8" %>
<%@ taglib uri="webwork" prefix="ww" %>
<html>
<head>
	<title>My JSF 'fileupload.jsp' starting page</title>
</head>
  
<body>

 <ww:form name="'test'" method="'post'" enctype="'multipart/form-data'" >
 	<ww:textarea name="'name'" label="'Name'" />
    <ww:file label="'File'" name="'file'"  />
    <ww:submit value="'Upload'"/> 
 </ww:form>
 
filename: <ww:property value="fileFileName"/><br>
name: <ww:property value="name"/>
</body>
</html>


xwork.xml配置如下:
    	<action name="fileupload" class="test.FileUploadAction">
    		<interceptor-ref name="fileUploadStack"></interceptor-ref>
    		<result name="success" type="dispatcher">
				<param name="location">/fileupload.jsp</param>
			</result>    	
    	</action>



没有其他特殊的配置

另:多个文件也没有问题
0 请登录后投票
   发表时间:2005-08-14  
fileUploadInterceptor好像是有bug的哦
0 请登录后投票
   发表时间:2005-08-15  
mmwy 写道
的确如此,jakarta才支持多文件上传。

另外,好象cos、pell不能处理null(也就你不上传文件)。


pell我没有试过,但cos肯定是能处理null的,只不过文件序列不会按照客户端的表单对象的排序而排列,记得当时我好像还给改了一下源代码,以便能获得文件正确的顺序。
0 请登录后投票
   发表时间:2005-08-30  
哦,必须要声明一个fileName属性啊.令我想起了php
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics