通过表单形式<input type=file>把图片上传到服务器的一个文件夹中,然后在数据库中写入一个路径,在另一jsp页面中从数据库把路径读出来并显示出来,请给点源码

解决方案 »

  1.   

    jsp页面
    <form id="companyInfoForm" action="/CompanyInfoServlet" method="post" enctype="multipart/form-data">
    <table>
    <tr><td class="table-frame-input-title" width="120" height="22"
    align="center">企业照片:</td>
    <td>
    <input type="file" id="companyImg" name="companyImg" style="width: 375px">
    </td>
    </tr></table>
    </form>提交到servlet 后台获取并存到数据库
    class MyFileRenamePolicy implements FileRenamePolicy{
         public File  rename(File file){
            String newName = addInNameExt(file.getName() , getDateStr());
            File result = new File(file.getParentFile() , newName);         return result;
         }
         
         //返回一个当前时间的字符串表示
         private String getDateStr(){
             String pattern ="yyyyMMddHHmmssSSS";
             SimpleDateFormat sdf = new SimpleDateFormat(pattern);
             String dateStr = sdf.format(new java.util.Date());          return dateStr;
         }      //分离完整文件名的文件名和后缀,并在中间加入字符串后返回
         private String addInNameExt(String fullName , String add){
             String name = "";//文件名 
             String ext = ""; //后缀
             char point = '.';
            int index = fullName.lastIndexOf(point);
            if(index != -1){//如果有后缀
                name = fullName.substring(0 , index);
                ext = fullName.substring(index + 1);
            }
            else{
                name = fullName;
            }         return name+"_"+ add + point + ext;
         }
    }
    /*设置上传文件路径*/
    ServletContext context = getServletContext();
    String realPath = context.getRealPath("/");
    String saveDir = realPath + "upload\\";
    File dir = new File(saveDir);
    if(!dir.exists())
        dir.mkdirs(); int maxPostSize = 4*5*1024*1024;
    String encoding = "GBK";
    FileRenamePolicy rename = new MyFileRenamePolicy(); MultipartRequest multi = null;

    try{
        multi = new MultipartRequest(req , 
                saveDir , maxPostSize , encoding , rename);
      //用于接收文本字段

    }catch(IOException e){
        //上传大小超过maxPostSize就会出现IOException
        
        return;
    }
    //至此文件已经上传完成!以下是获取图片名称
    Enumeration fileNames = multi.getFileNames();
     String companyImg=multi.getFilesystemName("companyImg");
    完了存数据库就会了吧
    需要一个cos的包 网上多的是 随便下一个就好了
      

  2.   

    楼主你自己google一下嘛, 上传demo  网上一搜一大把不要怕动手
    缺乏动手能力,你永远都做不好程序。。
      

  3.   

    [email protected]联系,可以给你源码。
      

  4.   

    <form id="companyInfoForm" action="/CompanyInfoServlet" method="post" enctype="multipart/form-data">
    <table>
     <tr><td class="table-frame-input-title" width="120" height="22"
     align="center">企业照片:</td>
     <td>
     <input type="file" id="companyImg" name="companyImg" style="width: 375px">
     </td>
     </tr></table>
    </form>提交到servlet 后台获取并存到数据库
    class MyFileRenamePolicy implements FileRenamePolicy{
     public File rename(File file){
     String newName = addInNameExt(file.getName() , getDateStr());
     File result = new File(file.getParentFile() , newName); return result;
     }
       
    //返回一个当前时间的字符串表示
    private String getDateStr(){
     String pattern ="yyyyMMddHHmmssSSS";
     SimpleDateFormat sdf = new SimpleDateFormat(pattern);
     String dateStr = sdf.format(new java.util.Date()); return dateStr;
     } //分离完整文件名的文件名和后缀,并在中间加入字符串后返回
    private String addInNameExt(String fullName , String add){
     String name = "";//文件名  
    String ext = ""; //后缀
    char point = '.';
     int index = fullName.lastIndexOf(point);
     if(index != -1){//如果有后缀
    name = fullName.substring(0 , index);
     ext = fullName.substring(index + 1);
     }
     else{
     name = fullName;
     } return name+"_"+ add + point + ext;
     }
     }
     /*设置上传文件路径*/
    ServletContext context = getServletContext();
     String realPath = context.getRealPath("/");
     String saveDir = realPath + "upload\\";
     File dir = new File(saveDir);
     if(!dir.exists())
     dir.mkdirs(); int maxPostSize = 4*5*1024*1024;
     String encoding = "GBK";
     FileRenamePolicy rename = new MyFileRenamePolicy(); MultipartRequest multi = null; try{
     multi = new MultipartRequest(req ,  
    saveDir , maxPostSize , encoding , rename);
     //用于接收文本字段}catch(IOException e){
     //上传大小超过maxPostSize就会出现IOException
       
    return;
     }
     //至此文件已经上传完成!以下是获取图片名称
    Enumeration fileNames = multi.getFileNames();
      String companyImg=multi.getFilesystemName("companyImg");
    完了存数据库就会了吧
    需要一个cos的包 网上多的是 随便下一个就好了