2013-11-11 3 views
0

Я хочу сохранить загруженные файлы в каталоге tomcat, а после этого хочу, чтобы некоторые пользователи получили доступ к загрузке этих файлов. Теперь файлы сохраняются в каталоге eclipse или на диске, где сохраняется eclipse, но никогда в каталоге tomcat. Я не знаю, как получить доступ к пути tomcat, я не хочу давать: C: \ tomcat7 \ webapps \ blabla \, я хочу получить путь туда, где когда-либо был tomcat.путь tomcat при сохранении файла весной mvc

Загрузить Контроллер:

@Controller 
@RequestMapping(value = "/upload") 
public class UploadController 
{ 
    @RequestMapping(method = RequestMethod.GET) 
    public String getUploadForm(Model model) 
    { 
    model.addAttribute(new UploadItem()); 
    return "upload/uploadForm"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String create(UploadItem uploadItem, BindingResult result) 
    { 
    if (result.hasErrors()) 
    { 
     for(ObjectError error : result.getAllErrors()) 
     { 
     System.err.println("Error: " + error.getCode() + " - " + error.getDefaultMessage()); 
     } 
     return "upload/uploadForm"; 
    } 

    // Some type of file processing... 

    String fileNameToCreate = "/"+uploadItem.getFileData().getOriginalFilename(); 
    File file; 
    try { 
    file = new File(fileNameToCreate); 
    FileUtils.writeByteArrayToFile(file, uploadItem.getFileData().getBytes()); 

    } catch (Throwable e) { 
    e.printStackTrace(); 
    } 

    System.err.println("-------------------------------------------"); 
    System.err.println("Test upload: " + uploadItem.getName()); 
    System.err.println("Test upload: " + uploadItem.getFileData().getOriginalFilename()); 
    System.err.println("-------------------------------------------"); 

    return "redirect:/app/"; 
    } 
} 

Я хочу кого-нибудь есть какие-то идеи, чтобы получить путь от этого контроллера к коту, или как я могу фик его

+1

Обычно вы не храните файлы в каталоге Tomcat. Вообще говоря, у вас будет какой-то файловый магазин, такой как Amazon S3. Я думаю, что любой подход, который хранит файлы, загруженные пользователем в Tomcat, просто звучит как плохая идея. – david99world

+0

Что @ david99world сказал. :) – Steve

+0

I double @ david99world. Ваше приложение не будет переносимым. Представьте, что он развернут в tomcat в системе, где папка tomcat доступна только для чтения в целях безопасности. Вам нужно настроить место для хранения файлов. Этот параметр (путь к папке) является типичным параметром развертывания, вы можете передать его как переменную среды или как системное свойство, например. –

ответ

0

вы можете использовать следующий, чтобы получить папку TOMCAT:

System.getProperty("catalina.base"); 
Смежные вопросы