我现在一直被这样的一个问题困惑  就是   单纯的文件上传  说实在的  还是蛮简单的  只要是把组件找全了 问题都不是很大的    但是   我现在想实现的功能是文件和表单信息同时上传的       这样的话  问题就来了  因为 上传文件是以二进制流的形式上传的  表单的参数  使用我们以前常用的request.getParameter是接收不到参数     我现在使用的fileupload的组件上传的   不知道 各位大虾有什么方法  能接收到参数   或者有其他的方法能同时实现这样的功能  一个表单  一次提交    同时上传文件和表单信息。 

解决方案 »

  1.   

    这是一个bug。改用别的控件实现吧
      

  2.   

    struts2可以上传文件不需要用什么组件吧!网上一推struts2的文件上传下载。
      

  3.   

    一个表单form 提交 ,
    一个按钮onclick 函数 ajax 提交,
      

  4.   

    亲,ajax我会。。能说说action中怎么获得除文件外的其他表单信息吗?
      

  5.   

    status2的上传功能就是借助于fileUpload。难道是我搞错了?
      

  6.   

    ajax分步提交,文件上传和表单信息提交分步完成
      

  7.   

    没错,呵呵, 用struts2你在action的属性中写上对应表单的文本域的name就行了,不用request.getParameter
      

  8.   

    struts2是用fileUpload上传的,但人已经封装好了,就是帮你解析出普通表单元素和文件元素了,因此你不用考虑这个问题,struts2的Action里可以直接接收普通表单元素和文件元素
      

  9.   

    struts2貌似上传很简单。全是封装好了;得到二进制流;然后你提供一个路径;他就给你保存了
      

  10.   

    怎么会拿不到呢。
    看看这个网址吧http://www.blogjava.net/max/archive/2007/03/21/105124.html
      

  11.   

    struts的不太清楚它封装的时候有没有去字段数据。
    common-file可以实现:
    protected void doPost(HttpServletRequest request , HttpServletResponse response) throws ServletException,
    IOException
    {
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if (isMultipart)
    {
    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    try
    {
    List items = upload.parseRequest(request);
    Iterator iter = items.iterator();
    while (iter.hasNext())
    {
    FileItem item = (FileItem) iter.next();
    if (item.isFormField())
    {
    byte[] buff = new byte[1024];
    item.getInputStream().read(buff);
    //上传非文件属性内容
    System.out.println(new String(buff).trim());
    } }
    } catch (FileUploadException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }