Двоичный файл повреждается при попытке загрузки с помощью Struts 6.3.0.2 с JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Двоичный файл повреждается при попытке загрузки с помощью Struts 6.3.0.2 с Java

Сообщение Anonymous »

Когда я пытаюсь загрузить файлы pdf и doc-x из своего приложения после обновления со struts2 до struts 6.3.0.2, файл повреждается. Я не могу открыть PDF-файл, который я загрузил из приложения после загрузки в приложение. Для файла doc-x отображается сообщение «Система не может обработать ваш запрос», что является пользовательской ошибкой из файла ошибок. На консоли отображается, что файл успешно загружен, но файл doc-x по-прежнему не открывается.
Это мой исходный код до обновления

import java.io.*;
import java.nio.file.Files;
import java.util.ResourceBundle;

public void downloadAttach(){
try {
String filename = DotsFormUtil.cleanStringFile(request.getParameter("filename"));t
String realname = DotsFormUtil.cleanStringFile(request.getParameter("name"));

HttpSession session = (HttpSession) request.getSession();
String strDotsIdToken = (String) session.getAttribute("strDotsIdToken");

try{
if(strDotsIdToken == null || !strDotsIdToken.equals(filename.split("_")[0]))
logger.error("strDotsIdToken is null or strDotsIdToken is not equal and Exception is thrown");
}catch (Exception e){
logger.info(e);
}
try {
if(filename!= null){
try {
ResourceBundle bundle = ResourceBundle.getBundle("resources.dotsDisplay");
String strDirectory=DotsFormUtil.cleanpString(bundle.getString("dots.attachments.path"));
File f= new File(FilenameUtils.normalize(DotsFormUtil.cleanString(strDirectory+File.separator + filename)));
String pattern = "[a-zA-Z0-9]{1,50}\\.[a-zA-Z0-9]{1,10}";
if(realname.matches(pattern)){

response.setHeader("Content-Disposition","attachment; fileName=" +realname);
}
response.addHeader("Content-Transfer-Encoding","base64");

out = response.getOutputStream();
fi= new FileInputStream(f);
byte[] buffer = new byte[(int)f.length()];

int readInt=fi.read(buffer);
try{
if(readInt != -1){
out.write(buffer);
out.flush();
}
}catch (Exception e){
logger.info(e);
}
} catch (FileNotFoundException e){
e.printStackTrace();
logger.info("File not found error" + filename);
logger.error(e.getMessage());
}catch (IOException e){
logger.info("error in reading file:" + filename);
}finally {
if(out != null) safeClose(out);
if(fi != null) safeClose(fi);
}
}
}catch (Exception e){
e.printStackTrace();
logger.error(e.getMessage(),e);
}
logger.info("successfully download attachment file");
}catch (Exception e){
e.printStackTrace();

}
}

public static String cleanStringFile(String- aString){
if(aString==null) return null;
String cleanString = "";
char cleanChar = '\0';
for(int i=0; i

Подробнее здесь: https://stackoverflow.com/questions/781 ... 3-0-2-with
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»