在jsp页面上写了一个上传图片的表单,在servlet中接收为啥只得到了文件名

servlet 里用ServletInputStream接收,
request.setCharacterEncoding("UTF-8");

    ServletInputStream sin = request.getInputStream();
    PrintWriter out=response.getWriter();

    byte[] buffer = new byte[1024 * 8];
    int length = 0, row = 0;
    String mark = "";
    String filename = "";
    while ((length = sin.readLine(buffer, 0, buffer.length)) > 0) {
        String s = new String(buffer, 0, length, "UTF-8");
        out.println("length:"+length + "    " + s + "<br/>");
        if (row == 0)
            mark = s.trim();
        else if (s.indexOf("filename=") > 0) {
            int end = s.lastIndexOf("\"");
            int start = s.substring(0, end).lastIndexOf("\"");
            filename = s.substring(start + 1, end);
        } else if ("".equals(s.trim()))
            break;
        row ++;
    }

    out.println("filename:    " + filename + "<br>");
    filename = request.getRealPath("/") + filename;
    String _filename = "D:\\jboss-5.1.0.GA\\server\\default\\deploy\\test.jpg";
    out.println("||"+filename+"||");
    FileOutputStream fout = new FileOutputStream(_filename);
    while ((length = sin.readLine(buffer, 0, buffer.length)) > 0) {
        String s = new String(buffer, 0, length);
        if (s.startsWith(mark))
            break;
        fout.write(buffer, 0, length);
    }
    fout.flush();
    fout.close();
    File f = new File(filename);
    System.out.println(f.exists());
    System.out.println(f.getAbsolutePath());

 http://www.cnblogs.com/goodwin/archive/2010/09/28/1837387.html 不使用readline试试