如题,最好能给例子,谢谢

解决方案 »

  1.   

    上传文件可以用SmartUpload,这个控件网上很多。打开文件也可以用这个,不过是出现下载框的时候选择打开
      

  2.   

    做的项目里的一段代码,看着参考一下吧  有些东西涉及其他的没拷
    大概意思应该明白了  
    写一个jsp页面,有文件上传框的,用MultipartContent 方式提交
    再参照下面代码写个servlet 应该就行了
    用的包是 fileupload
    DiskFileUpload uploadFile = new DiskFileUpload();
            //no more than 200M
            uploadFile.setSizeMax(1024*1024*200);
            //no more than 5M buffer
            uploadFile.setSizeThreshold(1024*1024*5);
            //temporary folder
            File tempFile = new File(getServletContext().getRealPath("/edi/file/temp"));
            log.info("Set path '" + tempFile.getPath() + "' as temporary directory.");
            if (!tempFile.exists()) {
                log.info("Directory '" + tempFile.getPath() + "' does not exist!");
                if (!tempFile.mkdirs()) {
                    throw new BusinessException("Failed to create temp directory!");
                }
                log.info("Create directory '" + tempFile.getPath() + "' successfully!");
            }
            uploadFile.setRepositoryPath(tempFile.getAbsolutePath());
            //encode type
            uploadFile.setHeaderEncoding("gb2312");
            
            List fileItems = null;
            try{
                fileItems = uploadFile.parseRequest(request);
                log.info("Parse request to create a list of " + fileItems.size() + " fileItems.");
            } catch (FileUploadException e) {
                throw e;
            }Iterator it = fileItems.iterator();
            while (it.hasNext()) {
                FileItem fileItem = (FileItem)it.next();
                log.info("Begin to deal with FileItem '" + fileItem.getFieldName() + "' : ");
                if(!fileItem.isFormField()){
                    try {
                        //get absolute path of uploaded file
                        String pathSrc = fileItem.getName();
                        log.info("Source path of FileItem on Client is '" + pathSrc + "'.");
                        if (StringUtils.isEmpty(pathSrc)) {
                            throw new BusinessException("Path 'null' cannot be resovled!");
                        }
                        
                        log.info("Size of FileItem is " + fileItem.getSize()/1000 + " k.");
                        if (fileItem.getSize() == 0) {
                            log.error("Size of FileItem '" + pathSrc + "' is 0.");
                            throw new BusinessException("Size of FileItem '" + pathSrc + "' is 0.");
                        } else if (StringUtils.isEmpty(fileItem.getString())) {
                            log.error("FileItem '" + pathSrc + "' is empty.");
                            throw new BusinessException("FileItem '" + pathSrc + "' is empty.");
                        }
    int start = pathSrc.lastIndexOf('\\');
                        //get file name of uploaded file
                        String fileName = pathSrc.substring(start + 1);
                        log.info("File name is '" + fileName + "'.");
                        if (!isFileNameLegal(fileName)) {
                            log.error("File '" + fileName + "' isn't accepted as System refuses file with a extension '" + getExtension(fileName) + "'");
                            throw new BusinessException("File '" + fileName + "' isn't accepted as System refuses file with a extension '" + getExtension(fileName) + "'");
                        }
                        
                        /*
                         * If folder to place uploaded files does not exist,it will be created. Or do nothing.
                         */
        //                    File dir = new File(SurecompParameter.getEntityParameter().getEdiUploadedFilePath());
                        File dir = new File(SystemService.getRealPath(SurecompParameter.getEntityParameter().getEdiUploadedFilePath()));
                        log.info("Directory on Server to save files is '" + dir.getPath() + "'.");
                        if(!dir.exists()){
                            log.info("Directory '" + dir.getPath() + "' isn't exist!");
                            if(!dir.mkdirs()){
                                throw new BusinessException("Can not create path for upload!");
                            }
                            log.info("Create directory '" + dir.getPath() + "' successfully!");
                        }
                        
                        // Data file to be uploaded
                        File dataFile = new File(dir, fileName);
                        log.info("System intends to save file as '" + dataFile.getPath() + "'.");
                        int i = 1;
                        while (dataFile.exists()) {
                            log.warn("File name '" + dataFile.getName() + "' already exists in directory '" + dataFile.getParent() + "'.");
                            dataFile = new File(dir, nextFileName(fileName,i));
                            log.info("File name is changed to '" + dataFile.getName() + "'.");
                            i++;
                        }
                        
                        // create file
                        if (dataFile.createNewFile()) {
                            log.info("Create data file '" + dataFile.getName() + "' in directory '" + dataFile.getParent() + "'.");
                            try {
                                log.info("Begin to write content to file '" + dataFile.getName() + "'.");
                                fileItem.write(dataFile);
                                log.info("Write content to file '" + dataFile.getName() + "' end.");
                            } catch (Exception e) {
                                log.info("Failed to write content to file '" + dataFile.getName() + "'.");
                                throw new BusinessException(e.getMessage());
                            }
    } finally {
                        fileItem.delete();
                        log.info("Delete FileItem for file '" + fileItem.getName() + "'.");
                    }
                } else {
                    log.info("FileItem '" + fileItem.getFieldName() + "' isn't a file field! Next ----");
                }
            } //End of while
      

  3.   

    前几天刚写了一个,楼主看看吧
    package om.fileupload.zhangc;import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;public class FileUpLoadServlet extends HttpServlet {


    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private static final String CONTENT_TYPE = "text/html;charset=UTF-8";
    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    ServletFileUpload upload = new ServletFileUpload();
    upload.setFileItemFactory(new DiskFileItemFactory());
    upload.setHeaderEncoding("UTF-8");
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    try {
    List items = upload.parseRequest(request);
    if(items != null){
    for(int i = 0 ; i < items.size() ; i ++ ){
    FileItem item = (FileItem)items.get(i);
    if(item.isFormField()){
    out.println("表单字段" + item.getFieldName() + "的值为:" + item.getString("UTF-8") + "<br>");
    }else{
    out.println("表单字段" + item.getFieldName() + "是文件,文件名为:" + item.getName() + ",文件内容为:<br>");
    out.println(item.getString("gb2312"));
    }
    }
    }
    } catch (FileUploadException e) {
    out.println("文件上传失败<br>");
    e.printStackTrace(out);
    }
    out.flush();
    out.close();
    }}