文件上传实现

来源:互联网 发布:hadoop能做什么 知乎 编辑:程序博客网 时间:2024/06/07 19:36

文件上传最常用到的就是在form submit中,对于需要上传文件的表单记得设置enctype="multipart/form-data",然后在表单递交后从RequestContext中取得相关数据信息,这里要借助于uploadbean.jar

用以下语句可以获取一般的表单数据

MultipartFormDataRequest mrequest = new MultipartFormDataRequest(context.getRequest());

Sting firstName = mrequest.getParameter("firstName");

 

而对于文件之类的要先上传到服务器文件目录下,然后再作相关处理,核心代码如下:


                        Hashtable files = mrequest.getFiles();
                        if ((files != null) || (!files.isEmpty())) {
                            int iFileCount = files.size();
                            UploadFile file = (UploadFile) files.get("attachment");
                            sLocalFileName = file.getFileName();
                            //int ii = sLocalFileName.indexOf(".");
                            //String sExt = sLocalFileName.substring(ii, sLocalFileName.length());
                            //log.info("sExt:" + sExt);
                            //java.util.Date dt = new java.util.Date(System.currentTimeMillis());
                            //SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                            //sServerFileName = fmt.format(dt);
                            sServerFileName = sLocalFileName;
                            File dir = new File(sPath);
                            if (!dir.exists()) {
                                dir.mkdirs();
                            }
                            upBean.setFolderstore(sPath);
                            upBean.addUploadListener(fileMover);
                            fileMover.setNewfilename(sServerFileName);
                            upBean.store(mrequest, "attachment");
                            log.info("file path is " + sPath + "/" + sServerFileName);

                            if (!sLocalFileName.equals("")) {
                                attachFile = new File(sPath + "/" + sServerFileName);
                                log.info("fileAttachment:" + attachFile.getName());
                                //smtpCore.addAttachment(attachFile);

                            }
                        }

 

这里的smtpCore.addAttachment(attachFile);是我需要将此文件再作为附件发送到某邮箱地址中,当然发送完毕后如果在服务器上不需要存档的话就可以直接用file.delete()将其删除。

 

Note:

该实现需要借用到以下三个包uploadbean.jar,filemover.jar,cos.jar

其中cos.jar虽然在java文件中貌似没有引用到,但在lib中如果不把它放进去就会报错,这个在调试过程中就发现了这一点。

原创粉丝点击