Servlet没有写文件

时间:2015-08-20 16:12:04

标签: java servlets

我在Android设备上从c:\illuxplain上传图片。我已经成功上传了图片,但是当我打开它时,它没有显示。

图片大小在存储空间中不为零,并显示扩展名.png。为什么不显示图片?这是将文件写入存储空间的正确方法吗?

Windows Photo Viewer can't open this picture...

这是我的 servlet代码

for (Part part : request.getParts()) {
    String fileName = extractFileName(part);
    File file = new File(fileSaveDir, fileName);
    InputStream input = part.getInputStream();

    byte[] buffer = new byte[1024];
    int len = input.read();

    FileOutputStream out = new FileOutputStream(file);
    while (len!=-1) {
        out.write(buffer,0,len);
        len = input.read(buffer);
    }
    out.close();
    input.close();
}

2 个答案:

答案 0 :(得分:2)

您在以下行中使用了错误的read方法:

int len = input.read();

这应该是:

int len = input.read(buffer);

答案 1 :(得分:1)

示例代码:

byte data[] = new byte[1024];
long total = 0;
int count;


while ((count = input.read(data)) != -1) {
         total += count;
         output.write(data, 0, count);
}

output.flush();
output.close();