У нас была такая же проблема. Но это было не очень важно для нас, потому что нам пришлось решать другие более серьезные проблемы с помощью Hibernate Query и Session.
В частности:
Итак, для нас мы имеем:
И, наконец,
AmplafiQuery имеет «asList ()», который является универсальной версией Query.list () У AmplafiQuery есть «unique ()», который является универсальной версией Query.uniqueRe sult () (и просто регистрирует проблему, а не бросает исключение)
Это большая работа, чтобы просто избежать @SuppressWarnings. Однако, как я уже сказал (и перечислены), есть много других лучше! причины для выполнения работ по упаковке.
Это были две основные причины для поврежденного файла.
finally
, чтобы убедиться, что соединение будет закрыто. Вот решение.
public String createZipfile(User user,MultipartFile[] uploadingFiles,String name,String category) throws Exception
{
List<String> srcFiles = new ArrayList<String>();
Date localDateTime = new Date();
System.out.println(localDateTime.toString().replaceAll(":", ""));
LocalTime time = LocalTime.now();
String filetime = (localDateTime.toString().replaceAll(":", ".")).replaceAll("IST ", ""); //time.toString().replaceAll(":", ".");
String finalFileName = category+"_"+name+"_"+user.getName()+"_"+filetime+".zip";
try
{
FileOutputStream fos = new FileOutputStream("F:\\FolderName\\FolderName\\Test\\"+finalFileName);
ZipOutputStream zipOut = new ZipOutputStream(fos);
try
{
int i=0;
for(MultipartFile uploadFile:uploadingFiles)
{
srcFiles.add(i, uploadingFiles[i].getOriginalFilename());
java.io.File convFile = new java.io.File(uploadingFiles[i].getOriginalFilename());
convFile.createNewFile();
byte[] b;
b = uploadingFiles[i].getBytes();
java.io.File fileToZip = new java.io.File(convFile.toString());
FileInputStream fis = new FileInputStream(fileToZip);
ZipEntry zipEntry = new ZipEntry(uploadingFiles[i].getOriginalFilename());
zipOut.putNextEntry(zipEntry);
byte[] bytes = uploadingFiles[i].getBytes();
zipOut.write(bytes, 0, uploadingFiles[i].getBytes().length);
fis.close();
zipOut.closeEntry();
i++;
}
}
catch (IOException e) {
e.printStackTrace();
throw new Exception("File Zipping Error");
}
finally {
zipOut.finish();
zipOut.flush();
zipOut.close();
fos.close();
}
}
catch (Exception e) {
throw new Exception("File Upload Error");
}
return finalFileName;
}