001package com.ganteater.ae.web; 002 003import java.io.BufferedOutputStream; 004import java.io.File; 005import java.io.FileOutputStream; 006 007import org.springframework.beans.factory.annotation.Autowired; 008import org.springframework.stereotype.Controller; 009import org.springframework.web.bind.annotation.RequestMapping; 010import org.springframework.web.bind.annotation.RequestMethod; 011import org.springframework.web.bind.annotation.RequestParam; 012import org.springframework.web.multipart.MultipartFile; 013import org.springframework.web.servlet.view.RedirectView; 014 015@Controller 016public class FileUploadController { 017 018 @Autowired 019 private WebWorkspace workspace; 020 021 @RequestMapping(value = "/upload-file", method = RequestMethod.POST) 022 public RedirectView handleFileUpload(@RequestParam("file") MultipartFile file, @RequestParam String log) { 023 WebLogger webLogger = workspace.getLogs().get(log); 024 if (!file.isEmpty()) { 025 try { 026 byte[] bytes = file.getBytes(); 027 File createTempFile = File.createTempFile("anteater", "file"); 028 BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(createTempFile)); 029 stream.write(bytes); 030 stream.close(); 031 032 WebInputItem input = webLogger.getInput(); 033 if (input instanceof FileUploadItem) { 034 webLogger.applyInput(new String[]{createTempFile.getAbsolutePath()}); 035 } 036 } catch (Exception e) { 037 e.printStackTrace(); 038 } 039 } else { 040 webLogger.applyInput(null); 041 } 042 return new RedirectView("show?taskName=" + webLogger.getName()); 043 } 044 045}