如何在将文件写入服务器之前获取文件大小?

时间:2015-12-28 16:20:28

标签: java file io inputstream

尝试将InputStream转换为字节数组以了解正在上载的文件的大小。我能够获得大小,但InputStream.read()变为-1。如何在将文件写入服务器之前检查文件大小?

我当前的代码为我提供了尺寸,但InputStream到达终点。

    private static byte[] readFully(InputStream input) throws IOException
{
    byte[] buffer = new byte[8192];
    int bytesRead;
    byte []bytes=null;
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    while ((bytesRead = input.read(buffer)) != -1)
    {
        System.out.println("Buffer is "+input.read(buffer));
        output.write(buffer, 0, bytesRead);
    }

    bytes=output.toByteArray();
    output.close();
    return bytes;
}

1 个答案:

答案 0 :(得分:0)

如果您使用Java实现Web服务器,请查看以下链接:

http://www.prasannatech.net/2008/11/http-web-server-java-post-file-upload.html

在找到边界之前,你必须尝试阅读这些信息。

您现在不能使用read()方法,因为InputStream可能尚未准备好进行读取。