if(req.getContentLength()>297){

bufferedInputStream =new BufferedInputStream(req.getInputStream());

}

File outputFile = new File(path + fileName);

bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(outputFile)); byte[] bytes = new byte[1024];  

int count = 0;  

System.out.println( bufferedInputStream.read(bytes));
  
// while ((count = bufferedInputStream.readLine(bytes,0,bytes.length)) > 0) 
// while ((count = bufferedInputStream.read(bytes)) != -1) 
// {  
bufferedOutputStream.write(bytes, 0, count);
// }  

} finally
     {
     if (null != bufferedInputStream)
     {
     try {
     bufferedInputStream.close();
     } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
     }
    
     if (null != bufferedOutputStream)
     {
     try {
     bufferedOutputStream.close();
     } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
     }输入输出流,JSP,文件上传

解决方案 »

  1.   

    你这outputFile 是不是成文件夹而不是文件,都没看到.txt,.xls的字样
      

  2.   

    不是的,参数中的filename就是获得上传文件的文件名的。执行到((count = bufferedInputStream.read(bytes)) != -1就一直是-1,读不出东西来。生成的新文件里面内容是空的。
      

  3.   

    bufferedOutputStream 换成 FileOutputStream试试
      

  4.   

    你从哪传的?jsp页面?如果是页面,把页面发过来,感觉request里面就没收到数据
      

  5.   

    记得上传的时候。。把form的enctype设置 multipart/form-data。。否则是收不到文件的
      

  6.   

    文件上传的时候注意是否设置类型为enctype=“multi/form-data”,服务器设置输入输出流编码了吗,还有选用的输入输出流是否合适。
      

  7.   

    bufferedOutputStream.write(bytes, 0, count);
    上面的count是0,当然写不进去。
      

  8.   

    是的,确实是request中没有收到内容。谢谢大家了。页面是Struts的,弄了个Form,并用了  MultipartRequestHandler 解决的。其实具体我也没有理解透彻