В основном моя проблема в том, что мне нужно скопировать загруженный файл (который помещается во временную папку на моих серверах Tomcat, то есть не локальный Tomcat).Копирование файла из временной папки tomcat с использованием java
Код, который я использую, работает при развертывании моего проекта на локальном компьютере, но перестает работать, когда я его развертываю. Я узнал, что у меня есть что-то с моими разрешениями в java.policy.
Что мне нужно выяснить, как получить доступ к папке, в которой Tomcat хранит временный файл с помощью Java.
При чтении catalina.out это ключ, который дает мне журнал.
/USR/местное название/кот/работа/Catalina/проект здесь/контекст проекта здесь/upload_490341a6_12b1d397355_76ce_00000001.tmp
Я думаю, где-то вдоль линий (примечание: это не фактический метод: P)
ServletActionContext.getContext(). GetSuperHiddenTemporaryCatalog();
У фрагмента кода внизу есть один недостаток.
sourceFile и targetFile указывает на тот же каталог на данный момент.
Я хочу, чтобы путь sourceFile был временной папкой tomcat.
Заранее благодарен! : D
public String saveImage(File file, String uploadedFileName) {
String path = ServletActionContext.getServletContext().getRealPath("images");
System.out.println(path);
String fullFileName = path + "/" + uploadedFileName;
System.out.println(fullFileName);
boolean successful = false;
try {
File sourceFile = new File(fullFileName);
File targetFile = new File(path + "/" + uploadedFileName);
InputStream in = new FileInputStream(sourceFile);
OutputStream out = new FileOutputStream(targetFile);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
} catch (Exception e) {
successful = false;
e.printStackTrace();
}
if (successful) {
return "context of project/images/" + uploadedFileName;
} else {
return "";
}
}
Спасибо, это помогло много! Получил файловую загрузку для работы. Этот способ также добавил дополнительные проверки, чтобы проверить, читается ли файл и так далее! Благодаря! –