可以一起传的,我用的是struts,不知你具体的情况
file,得用Object型接收

解决方案 »

  1.   

    我没有用structs,我不会啊!!!怎么办呢?
      

  2.   

    表单元素是通过get方式提交的,而file是通过post方式提交的,所以在提交file的同时不能同时提交表单元素,解决方法是可以使用smartupload包或者jakarta的commons-upload包来解决,以下是commons-upload包的解决方法,用servlet来完成,你看看吧
    package workshopclient;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Hashtable;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;import org.apache.jetspeed.portlet.*;
    import org.apache.jetspeed.portlet.event.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletInputStream;import org.apache.commons.fileupload.DiskFileUpload;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUpload;
    import org.apache.commons.fileupload.FileUploadException;
    import com.ibm.wps.portlets.install.ContentElement;
    import com.ibm.wps.portlets.install.MultipartContent; 
    import workshopclient.*;/**
     * @author Administrator
     *
     * To change this generated comment edit the template variable "typecomment":
     * Window>Preferences>Java>Templates.
     * To enable and disable the creation of type comments go to
     * Window>Preferences>Java>Code Generation.
     */
    public class UploadAction {
    Hashtable params = new Hashtable();
    public UploadAction() { 
    }
    public Hashtable execute(PortletRequest request, PortletResponse response) throws Exception {
    File dir = new File("D:\\temp","1.temp");
    HttpServletRequestWrapper srw = (HttpServletRequestWrapper) request;
    System.err.println("Begin to upload the file");
    try {
    FileOutputStream fout = new FileOutputStream(dir);

    if (FileUpload.isMultipartContent((HttpServletRequest)srw.getRequest())) {

    System.err.println("Get the multipart content");

    DiskFileUpload upload = new DiskFileUpload();
    List items = upload.parseRequest((HttpServletRequest) srw.getRequest());
    Iterator iter = items.iterator();

    while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();
    if (!item.isFormField()) {
    copy(item.getInputStream(), fout, false);
    request.getPortletSession().setAttribute("FILE_NAME", item.getName());
    }
    else{
    params.put(item.getFieldName(), item.getString());
    System.err.println(params.size());

    }
    }

    }

    } catch (Exception e) {

    }

    return params; 
    }

    public static void copy(InputStream _in, OutputStream _out, boolean _closeInput) throws IOException {
    byte[] buffer = new byte[1024 * 512];
            int read;
            while (true) {
                read = _in.read(buffer);
                if (read == -1)
                    break;
                _out.write(buffer, 0, read);
            }
            _out.flush();
            _out.close();
            if (_closeInput)
                _in.close();
        }
        
        private static void write (InputStream in, OutputStream out) throws IOException{
      byte[] buffer = new byte[1024*512];
      int read;
      while (true){
    read =in.read(buffer);
    if (read == -1)
    break;
     out.write(buffer, 0, read);
      }
      out.flush ();
       }}