SSM+Maven環境下上傳檔案到資料庫指定欄位中例項(已實現)
阿新 • • 發佈:2019-02-04
package com.qjc.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.alibaba.fastjson.JSON; import com.qjc.model.Archetype; import com.qjc.service.ArchetypeService; @Controller public class FileUploadController { private static final Logger logger = LoggerFactory.getLogger(FileUploadController.class); @Resource private ArchetypeService archetypeService; public ArchetypeService getArchetypeService() { return archetypeService; } @Autowired public void setArchetypeService(ArchetypeService archetypeService) { this.archetypeService = archetypeService; } @RequestMapping(value = "/upload", method = RequestMethod.POST) public @ResponseBody String upload(@RequestParam("name") String name, @RequestParam("file") MultipartFile file, HttpServletResponse response) throws IOException { if (!file.isEmpty()) { try { // 匯入物件方法Archetype Archetype record = new Archetype(); // 獲取上傳檔案的原始名稱 // String originalName = file.getOriginalFilename(); // 獲取檔案的字尾名 String extensionName = file.getOriginalFilename() .substring(file.getOriginalFilename().lastIndexOf(".")); BufferedReader bufferedReader; String read; // 初始化變數str用"" String str = ""; bufferedReader = new BufferedReader(new InputStreamReader(file.getInputStream())); while ((read = bufferedReader.readLine()) != null) { str += read; } logger.info(JSON.toJSONString(str)); //System.out.println(str); // 呼叫mybatis生成的insertSelective功能傳入資料庫欄位,使用record.set record.setAdl(str); record.setXml(extensionName); // 使用service方法插入物件到資料庫 archetypeService.insertSelective(record); return "success"; } catch (Exception e) { return "fail"; } } else { return "index"; } } }