我在使用dwr做项目,需要上传会员头像,但我原来的框架是用struts做图片上传的,是否可以得到本地文件路径,然后转换为Formfile对象,需要如何传值,请教。

解决方案 »

  1.   

    首先請確定commons-fileupload.jar有在WEB-INF/lib目錄下。 FormBean:
    package onlyfun.caterpillar; 
                                                                                    
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 
    import org.apache.struts.upload.*; 
                                                                                    
    public class UploadForm extends ActionForm { 
        private FormFile file; 
                                                                                    
        public void setFile(FormFile file) { 
            this.file = file; 
        } 
                                                                                    
        public FormFile getFile() { 
            return file; 
        } 
                                                                                    
        public void reset(ActionMapping mapping, HttpServletRequest req) { 
            file = null; 
        } 
    }JSP:
    <html:form action="/Upload" method="post" enctype="multipart/form-data"> 
        選擇檔案:<html:file property="file" /> 
        <html:submit>上傳</html:submit> 
    </html:form>Action:
    package onlyfun.caterpillar; 
                                                                                                    
    import java.io.*; 
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 
    import org.apache.struts.upload.*; 
                                                                                                    
    public class UploadAction extends Action { 
        public ActionForward execute(ActionMapping mapping, 
                                     ActionForm form, 
                                     HttpServletRequest request, 
                                     HttpServletResponse response) 
        throws Exception { 
            UploadForm fileForm = (UploadForm) form; 
            FormFile file = fileForm.getFile(); 
            FileOutputStream fileOutput = new FileOutputStream("/home/caterpillar/files/" + file.getFileName()); 
                                                                                                    
            fileOutput.write(file.getFileData()); 
            fileOutput.flush(); 
            fileOutput.close(); 
                                                                                                    
            return mapping.findForward("success"); 
        } 
    }
      

  2.   

    这种做法我清楚,我是要转换为FormFile对象。
      

  3.   

    就是得到本地路径后,转换为FormFile对象