偶是新手,想做个上传图片的功能,求代码,详细点,最好有注释,谢谢各位大哥呀

解决方案 »

  1.   

    LZ啊~~~发帖之前最好自己先google或者是百度一下~~~这些东西网上有很多的!
    http://wenku.baidu.com/view/80dc0a1ffc4ffe473368abbd.html
      

  2.   

    PreparedStatement   preStmt=con.prepareStatement( "insert   into   file_fujian(file_id,note,filename,filesize)   values(?,EMPTY_BLOB(),?,?) "); 
            for(int   i=0;i <fileUpload.getFiles().getCount();i++) 
            { 
                      int   f_id=0;                                    if(fileUpload.getFiles().getFile(i).isMissing()) 
                      { 
                            continue; 
                      }                   if(fileUpload.getFiles().getFile(i).getSize() <=0) 
                      { 
                            continue; 
                      } 
                    preStmt.setInt(1,info_id); 
                    preStmt.setString(2,fileUpload.getFiles().getFile(i).getFileName()); 
                    preStmt.setInt(3,fileUpload.getFiles().getFile(i).getSize()); 
                    preStmt.execute(); 
                         Statement   tempStmt=con.createStatement(); 
                    ResultSet   temprs=tempStmt.executeQuery( "select   fujian_id.CURRVAL   from   dual "); 
                    if(temprs.next()) 
                    { 
                              f_id=temprs.getInt(1); 
                    }                   byte   binBytes[]       =   new   byte[fileUpload.getFiles().getFile(i).getSize()]; 
                      for   (int   j=0;j   <fileUpload.getFiles().getFile(i).getSize();j++) 
                        { 
                                  binBytes[j]   =   fileUpload.getFiles().getFile(i).getBinaryData(j); 
                      }                   temprs=tempStmt.executeQuery( "select   *   from   file_fujian   where   id= "+f_id); 
                                   if   (temprs.next()) 
                        { 
                                BLOB   blob   =   ((OracleResultSet)   temprs).getBLOB( "note "); 
                                OutputStream   ost   =   blob.getBinaryOutputStream(); 
                                ost.write(binBytes); 
                                ost.flush(); 
                                ost.close(); 
                      } 
                      temprs.close(); 
            } 
      

  3.   

    jsp代码:
    <input type="file" name="file" id="imgurl" style="border:1px solid #7F9DB9;"/>
    js验证上传的是否是图片:
    var imgurlValue = $('#imgurl').val();  // 图片上传
    if ((imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "jpg")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "jpeg")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "png")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "bmp")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "gif")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "JPG")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "JPEG")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "PNG")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "BMP")
    &&(imgurlValue.substring(imgurlValue.lastIndexOf('.')+1) != "GIF")) {
    //alert("系统不允许上传此种类型文件!");
    $('#errorMsg').html("系统不允许上传此种类型文件");
    return false;
    }
    后台Struts2接收参数并上传文件到服务器上,代码如下:private File file;
    private String fileContentType;// 文件后缀
    private String fileFileName;// 文件名// 省略setter和getter方法
    //首先将文件写入一个输入流里面
    InputStream is = new FileInputStream(file);
    //其次得到你要上传文件到那个目录
    String root = ServletActionContext.getRequest().getRealPath("/upload/images");
    DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
    String formatDate = format.format(new Date());
    int random = new Random().nextInt(10000);
    int position = fileFileName.indexOf(".");
    String extension = fileFileName.substring(position) ;
    String newFileName = formatDate + random + extension ;
    //再次创建一个File来保存你的文件
    File destFile = new File(root,newFileName);
    //然后就是一个输出流将文件写入到File中。
    OutputStream os = new FileOutputStream(destFile);
    //以下就是写入文件的方式
    byte buffer[] = new byte[2048]; 
    int length = 0;
    while((length = is.read(buffer))>0){
    os.write(buffer,0,length);
    }
    //最后一定要关闭流 
    is.close();
    os.close();
      

  4.   

    //新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    SmartRequest req = su.getRequest();
    //上传初始化
    su.initialize(getServletConfig(), request, response);
    //上传文件
    su.upload();
    //执行保存图片方法 返回上传成功的个数
    int count =su.save("/images");