alexhometown 2015-02-06 07:35 采纳率: 0%
浏览 2239

浏览器上传文件时字节流疑问

我要实现的功能很简单。就是通过浏览器将文件上传到远程服务器上。在编写代码过程中遇到了一些让我疑惑的问题。还请高手们指点下迷津。

<form action="fileUploadServlet"  method="post" enctype="multipart/form-data">
            <input class="file" type="file" name="filepath" size=20 style="border:1px solid" />

            <br/>
            <input type="submit" value="提交">
        </form>

这是JSP页面中的代码

        File f = new File("F:\\work\\temp.txt");
        if(f.exists())
        {
            f.delete();
        }
        f.createNewFile();

        OutputStream os = new FileOutputStream(f);
        InputStream  is = req.getInputStream();
        byte[] b = new byte[1024];
        while(is.available()>0)
        {   is.read(b);
            os.write(b);
        }
        os.flush(); 
        os.close();

这是servlet中处理字节流的代码

在传输一些小文本的时候,是挺正常的。服务器上的缓存文件内容和要上传的文件内容一致。但当我上传一些比较大的文件(几KB的文本),发现服务器上缓存的文本内容要比实际的文本内容要多出来一部分。这是为何?

图片1,火狐浏览器中显示的发送请求时,附带的字节流
图片说明

图片2,服务器上缓存文件里的内容,红框部分就是多出来的
图片说明

  • 写回答

1条回答

  • toread_9898 2015-02-07 14:08
    关注

    你直接通过req 获取到inputStream流的时候 不只是获取到文件内容、有对文件内容的描述。
    可以通过 Apache fileupload jar包对其进行分析 获取文件的信息
    或者通过struts2 已经 spring mvc 直接获取

    评论

报告相同问题?

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?