请问用jsp开发Web程序时怎样实现图片的上传,就像QQ空间里上传照片一样。请问实现此功能的代码如何写啊?

解决方案 »

  1.   

    用jspSmartUpload组件来实现,用jsp+servlet在Servlet里实现的代码:PrintWriter out = response.getWriter();
      int count = 0;
      // 实例化上传控件对象
      SmartUpload su = new SmartUpload();
      // 初始化操作
      su.initialize(config, request, response);
      
      // 设置上传文件最大字节数
      su.setTotalMaxFileSize(100000);
      
      // 
      try {
                              //禁止上传指定扩展名的文件
       su.setDeniedFilesList("ext,bat,jsp");
      } catch (SQLException e1) {
       e1.printStackTrace();
      }
      
      try {
       // 上传文件到服务器
       su.upload();
       
       File fileup = new File(request.getRealPath("upload"));
       if(!fileup.exists()){
        // 创建目录
        fileup.mkdir();
       }
       // 处理多个文件的上传
       for(int i = 0;i < su.getFiles().getCount();i++){
        com.jspsmart.upload.File file = su.getFiles().getFile(i);
        if(!file.isMissing()){ // 如果文件有效
         // 保存文件到指定上传目录
         file.saveAs("/upload/new."+file.getFileExt(), su.SAVE_VIRTUAL);
         count = su.save("/upload");
        }
       }
      } catch (SmartUploadException e) {   e.printStackTrace();
      }
      out.println(count +"file(s) uploaded");如果你对这个上传组件不了解,最好是先去查查用法 
      

  2.   

    可以使用commons-fileupload组件实现,struts1和struts2中都使用这个组件实现文件的上传,很好用!
    注意使用文件上传时,页面的form需要使用 enctype="multipart/form-data"
      

  3.   

    谢谢哦,我们现在正学习struts的