本人想写一个网页,带有上传图片功能,规定上传文件的格式为图片,在选择本地图片的对话框中,不显示非图片格式的文件,本人新手,跪求解决。jsp上传图片

解决方案 »

  1.   

    组件smartupload  加入包smartupload.jar
     SmartUpload su = new SmartUpload();    
            long maxsize = 2 * 1024 * 1024;                                     // 设置每个上传文件的大小,为2MB
            String allowedFilesList = "jpg,gif,bmp";
            String denidFilesList = "exe,bat,jsp,htm,html,,";
            
            try {
                su.initialize(this.getServletConfig(), request, response);        //初始化
                su.setMaxFileSize(maxsize);                                     // 限制上传文件的大小
                su.setAllowedFilesList(allowedFilesList);                        // 设置允许上传的文件类型
                su.setDeniedFilesList(denidFilesList);   
                su.upload();                                                    // 上传文件
                
                String photoInfo = su.getRequest().getParameter("info");        //必须这样来获取request
                if(photoInfo==null||photoInfo.equals("")){                        //验证照片描述信息,若没有输入,则提示输入照片描述信息
                    messages="请输入照片描述信息!";
                    forward="/admin/error.jsp";
                }else{
                    File file = su.getFiles().getFile(0);                        // 获取上传的文件,因为只上传了一个文件,所以可直接获取            
                    if (!file.isMissing()) {                                     // 如果选择了文件
                        String now = new Date().getTime() + "";                    //获取当前时间并格式化为字符串
                        String photoAddr=filePath + now + "."+file.getFileExt();        //filePath值
                        
                        file.saveAs(photoAddr,File.SAVEAS_VIRTUAL);            
                    }else{
                        messages="请选择要上传的文件!";
                        forward="/admin/error.jsp";
                    }                
                }            
            }catch (java.lang.SecurityException e){
                messages="<li>上传文件失败!上传的文件类型只允许为:jpg,gif,bmp</li>";
                forward="/admin/error.jsp";            
            }catch (SmartUploadException e) {
                messages="上传文件失败!";
                forward="/admin/error.jsp";
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }                 
      

  2.   

    图片上传一般有个accept属性,设置成accept="image/*"
      

  3.   

    用flash插件,/**
    * @see 导入flash插件,在页面加载时调用这个方法
    * @param num 插件的索引,从0开始
    * @param serAddress 服务器的域名
    * @param maxSize 允许上传的单个文件的最大值(字节)
    * @param fileType 文件类型:0图片,1视频,2Flash文件,3音频文件,4任何文件
    * @param fileNum 允许上传的文件个数
    * @param upPath 上传保存的目录
    * @param extraurl 附加信息
    */
    function initFlash(num, serAddress, maxSize, fileType, fileNum, upPath, extraurl)效果图: