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}