【发布时间】:2012-04-17 09:48:32
【问题描述】:
当我读取相同的输入流时,我必须从 jsp 页面上传一些文件。
我正在检查它是否是有效文件的真实性,因为我使用的是jmimemagic ,它以输入流作为参数,现在当我尝试上传它时,它只上传 1 个字节的数据?
我觉得输入流有问题,请问有什么解决方案吗?
//For checking the file type
InputStream loIns = aoFileStream.getInputStreamToReadFile();
byte[] fileArray = IOUtils.toByteArray(loIns);
mimeType = Magic.getMagicMatch(fileArray, true).getMimeType();
if(!loAllowedFileTypesMimeList.contains(mimeType)){
return false;
}else{
String lsFileName = aoFileStream.getFileName();
String lsFileExt = lsFileName.substring(lsFileName.lastIndexOf(".") + 1);
if(loAllowedFileTypesList.contains(lsFileExt.toLowerCase())){
return true;
}
return false;
}
// For uploading the content
File loOutputFile = new File(asFilePathToUpload);
if(!loOutputFile.exists()){
FileOutputStream loOutput = new FileOutputStream(loOutputFile);
while (liEnd != -1) {
liEnd = inputStreamToReadFile.read();
loOutput.write(liEnd);
}
inputStreamToReadFile.close();
loOutput.close();
}
【问题讨论】:
-
能否请您提供您正在使用的代码,以便我们查看?没有任何错误消息或代码很难诊断。
-
在这两种情况下,相同的流被用于执行操作
标签: java file-upload