确保<%@ page import="javax.imageio.ImageIO" %>File fi = new File("/home/images/aaa.jpg"); 此处一定是你的硬盘上实际路径的图片

解决方案 »

  1.   

    是不是只能用绝对路径,我把我的相关代码贴出来import="javax.imageio.ImageIO"
    import="javax.imageio.IIOException"
    import="java.awt.image.BufferedImage"
    import="java.awt.Image"
    import="java.io.File"
    import="java.awt.image.AffineTransformOp"
    import="java.awt.geom.AffineTransform" %>String s_title = myUpload.getRequest().getParameter("name");
    String s_path = "../1/" + s_filename;//也试过String s_path = "..\\1\\" + s_filename;
    File fi = new File(s_path); //大图文件
    BufferedImage bis = ImageIO.read(fi);
    大家帮我看看,很急啊!!
      

  2.   

    那怎么样从html的文件域中获取输入的文件路径呢?
    我用String s_title = myUpload.getRequest().getParameter("name");
    可以得到名为“name”的文本框中的字符串
    但是用String s_title = myUpload.getRequest().getParameter("file");
    却得不到名为“file”的文本域中输入的字符串,怎么回事啊
    用request.getParamenter("file");也一样得不到,获得的都是Null
      

  3.   

    ASP可以用组件,不知道JSP可以吧
      

  4.   

    <%@ page import="javax.imageio.ImageIO" %>
    <%@ page import="javax.imageio.IIOException" %>
    <%@ page import="java.awt.image.BufferedImage" %>;
    <%@ page import="java.awt.Image" %>
    <%@ page import="java.io.File" %>
    <%@ page import="java.awt.image.AffineTransformOp" %>
    <%@ page import="java.awt.geom.AffineTransform" %><%
    try 
    {        //如果是windows,File fi=new File("c:\\abc\\aaa.jpg");
    File fi = new File("/home/images/aaa.jpg"); //大图文件
    File fo = new File("/home/images/bbb.jpg"); //将要转换出的小图文件
    int nw = 100;//新的长度
    AffineTransform transform = new AffineTransform();
    BufferedImage bis = ImageIO.read(fi);
    //
    int w = bis.getWidth();//原来的长度
    int h = bis.getHeight();//原来的高度
    double scale = (double)w/h;
    int nh = (nw*h)/w ;//新的高度
    //
    double sx = (double)nw/w;//宽度比例
    double sy = (double)nh/h;//高度比例
    transform.setToScale(sx,sy);
    System.out.println(w + " " +h);
    //
    AffineTransformOp ato = new AffineTransformOp(transform,null);
    BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
    ato.filter(bis,bid);
    ImageIO.write(bid,"jpeg",fo);

    catch(Exception e) 
    {
    out.println(e);
    }

    %>
      

  5.   

    好像在java里,读取文件不能用相对路径,只能用绝对路径。
      

  6.   

    楼上的,就是你这段代码,我每次运行都报错
    问题就出在BufferedImage bis = ImageIO.read(fi);这句
    说是不能Read,我试了几乎所有的办法,还是一样
    又得不到绝对路径,用几种方法getParameter得到的都是Null(Name绝对没输错)
    我都快疯掉了,有谁能帮帮我!!
      

  7.   

    你换个方法,先上传,再生成缩略图。比如你上传了一个文件
    得到上传以后的文件名c:\\temp\\aaa.jpg,然后再生成缩略文件,
    如果你连上传以后的文件名都不知道,汉
      

  8.   

    我第一种方法就是要得到上传后的文件信息,因为是要上传到服务器上,所以只有相对路径(可是用相对路径始终无法实现)所以我才想是不是用绝对路径可以,才想到用getParameter获取绝对路径,结果getParameter获取的是Null
      

  9.   

    取绝对路径的方法,
    <%=request.getRealPath("")%>
      

  10.   

    我也试了,BufferedImage bis = ImageIO.read(fi); 这句不能找到文件
      

  11.   

    //如果是windows,File fi=new File("c:\\abc\\aaa.jpg");
      

  12.   

    可是我只有相对路径,怎么样获取绝对路径啊?
    request里面根本找不到getRealPath啊