質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

0回答

3270閲覧

springのファイルアップロード機能について

heavyuseman

総合スコア42

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2016/09/04 13:06

###前提・実現したいこと
springbootでファイルアップロード機能を実装しております。
使用しているDBはMysqlです。
実装したところ、NullPointerExceptionエラーが返ってきてしまいます。
原因は何になりますでしょか?
ご回答のほど宜しくお願い致します

ログ 2016-09-04 20:52:28.086 ERROR 886 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null

java

1HeloController 2package com.tuyano.springboot; 3import java.io.IOException; 4import java.io.InputStream; 5import java.util.List; 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.stereotype.Controller; 8import org.springframework.transaction.annotation.Transactional; 9import org.springframework.web.bind.annotation.ModelAttribute; 10import org.springframework.web.bind.annotation.RequestMapping; 11import org.springframework.web.bind.annotation.RequestMethod; 12import org.springframework.web.bind.annotation.RequestParam; 13import org.springframework.web.multipart.MultipartFile; 14import org.springframework.web.servlet.ModelAndView; 15 16import com.tuyano.springboot.repositories.MyDataMongoRepository; 17 18@Controller 19public class HeloController { 20 21@Autowired 22MyDataMongoRepository repository; 23 24 25@RequestMapping(value="/upload",method=RequestMethod.POST) 26public String upload(FileUploadForm form) throws IOException{ 27 28 MultipartFile file =form.getFile(); 29 String contentType =file.getContentType(); 30 String parameterName =file.getName(); 31 String originalFilename =file.getOriginalFilename(); 32 long fileSize =file.getSize(); 33 34 try(InputStream content =file.getInputStream()){ 35 36} 37 38 return"redirect:/file/upload?complete"; 39} 40}

java

1FileUploadForm.java 2package com.tuyano.springboot; 3 4import java.io.IOException; 5import java.io.InputStream; 6import java.util.List; 7 8 9import org.springframework.beans.factory.annotation.Autowired; 10import org.springframework.stereotype.Controller; 11import org.springframework.transaction.annotation.Transactional; 12import org.springframework.web.bind.annotation.ModelAttribute; 13import org.springframework.web.bind.annotation.RequestMapping; 14import org.springframework.web.bind.annotation.RequestMethod; 15import org.springframework.web.bind.annotation.RequestParam; 16import org.springframework.web.multipart.MultipartFile; 17import org.springframework.web.servlet.ModelAndView; 18 19import com.tuyano.springboot.repositories.MyDataMongoRepository; 20 21@Controller 22public class HeloController { 23 24@Autowired 25MyDataMongoRepository repository; 26 27@RequestMapping(value="/",method=RequestMethod.GET) 28public ModelAndView index(@ModelAttribute("formModel")MyDataMongo mydatamongo,ModelAndView mav){ 29 mav.setViewName("index"); 30 mav.addObject("title","Find Page"); 31 mav.addObject("msg","サンプルです"); 32 List<MyDataMongo> list=repository.findAll(); 33 mav.addObject("datalist",list); 34 System.out.println(mav); 35 return mav; 36} 37@RequestMapping(value="/",method=RequestMethod.POST) 38 39public ModelAndView form( 40 @ModelAttribute("formModel")MyDataMongo mydatamongo,ModelAndView mav){ 41 repository.saveAndFlush(mydatamongo); 42 mav =new ModelAndView("redirect:/"); 43 System.out.println("mov"+mav); 44 return mav; 45} 46 47@RequestMapping(value="/first",method=RequestMethod.GET) 48public ModelAndView find(@ModelAttribute("formModel")MyDataMongo mydatamongo,ModelAndView mav){ 49 mav.setViewName("first"); 50 mav.addObject("title","Find Page"); 51 mav.addObject("msg","サンプルです"); 52 mav.addObject("value",""); 53 List<MyDataMongo> list=repository.findAll(); 54 mav.addObject("datalist",list); 55 System.out.println(mav); 56 return mav; 57} 58@RequestMapping(value="/first",method=RequestMethod.POST) 59public ModelAndView search(@RequestParam("name")String param,ModelAndView mav){ 60 //mav.setViewName("first"); 61 62 if(param ==""){ 63 mav =new ModelAndView("redirect:/first"); 64 }else{ 65 System.out.println("param"+param); 66 mav.addObject("title","Find Result"); 67 mav.addObject("msg","["+param+"]の検索結果"); 68 mav.addObject("value",param); 69 List<MyDataMongo> list=repository.findByName(param); 70 System.out.println(list); 71 mav.addObject("dataList",list); 72 //mav.setViewName("login"); 73 mav.setViewName("login"); 74 } 75 System.out.println(mav); 76 //mav =new ModelAndView("redirect:/login"); 77return mav; 78} 79 80 81@RequestMapping(value="/login",method=RequestMethod.GET) 82public ModelAndView login(ModelAndView mav){ 83 mav.addObject("title","Find Page"); 84 mav.addObject("msg","loginです"); 85 mav.addObject("value","loginページです"); 86 System.out.println(mav); 87 return mav; 88} 89@RequestMapping(value="/upload",method=RequestMethod.POST) 90public String upload(FileUploadForm form) throws IOException{ 91 92 MultipartFile file =form.getFile(); 93 String contentType =file.getContentType(); 94 String parameterName =file.getName(); 95 String originalFilename =file.getOriginalFilename(); 96 long fileSize =file.getSize(); 97 98 try(InputStream content =file.getInputStream()){ 99 100} 101 102 return"redirect:/file/upload?complete"; 103} 104}

java

1MyDataMongo.java 2package com.tuyano.springboot; 3 4import java.util.Date; 5 6import javax.persistence.Column; 7import javax.persistence.Entity; 8import javax.persistence.GeneratedValue; 9import javax.persistence.GenerationType; 10import javax.persistence.Id; 11import javax.persistence.Table; 12 13import org.springframework.context.annotation.Bean; 14import org.springframework.web.multipart.MultipartResolver; 15import org.springframework.web.multipart.support.StandardServletMultipartResolver; 16 17 18 19 20@Entity 21@Table(name="Linefriend") 22public class MyDataMongo { 23@Id 24@GeneratedValue(strategy=GenerationType.AUTO) 25@Column 26private Long id; 27 28@Column 29private String name; 30@Column 31private String password; 32@Column 33private String address; 34// 35public MyDataMongo() { 36 37this.name="田中"; 38this.password="田中"; 39this.address="田中"; 40} 41 42public void setId(Long id){ 43 44 this.id=id; 45 46} 47 48public Long getId(){ 49 50 return id; 51 52} 53 54 55public String getName(){ 56 57 return name; 58 59} 60 61public void setName(String name){ 62 63 this.name=name; 64 65} 66public String getPassword(){ 67 68 return password; 69 70} 71 72public void setPassword(String password){ 73 74 this.password=password; 75 76} 77 78 79public String getAddress(){ 80 81 return address; 82 83} 84public void setAddress(String address){ 85 86 this.address=address; 87 88} 89 90@Bean 91public MultipartResolver multipartResolver(){ 92 return new StandardServletMultipartResolver(); 93} 94}

HTML

1・first.html 2<!DOCTYPE html> 3<html xmlns:th="http://www.thymeleaf.org"> 4<head> 5<title>top page</title> 6<meta http-equiv="Content-Type" 7content="text/html" charset="UTF-8"/> 8<!-- css --> 9 <link href="/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/> 10</head> 11<body> 12 13 <h1 th:text="${title}">find Page</h1> 14 <p th:text="${msg}"></p> 15 <table> 16 <form method="post" action="/first"> 17 <tr><td>名前</td> 18 <td><input type="text" name="name" size="20" th:value="${value}"/></td></tr> 19 <tr><td>パスワード</td> 20 <td><input type="text" name="password" size="20" th:value="${value}"/></td></tr> 21 <tr><td></td><td><input type="submit"/></td></tr> 22 </form> 23 </table> 24 <hr/> 25 <form method="post" enctype="multipart/form-data" th:action="@{/upload}"> 26 <input name="fileData" type="file" /> 27 <input type="submit" /> 28 </form> 29<table> 30 <tr><th>名前</th><th>メモ</th><th>日時</th></tr> 31 <tr th:each="obj :${dataList}"> 32 <td th:text="${obj.name}"></td> 33 34 35 </tr> 36 </table> 37 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 38<script type="text/javascript" src="js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script> 39 40</body> 41</html>

xml

1web.xml 2<web-app xmlns="http://java.sun.com/xml/ns/javaee" 3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"> 5 6<servlet> 7 <servlet-class> 8 org.springframework.web.servlet.DispatcherServlet 9 </servlet-class> 10 <!-- omitted --> 11 <multipart-config> <!-- (3) --> 12 <max-file-size>5242880</max-file-size> <!-- (4) --> 13 <max-request-size>27262976</max-request-size> <!-- (5) --> 14 <file-size-threshold>0</file-size-threshold> <!-- (6) --> 15 </multipart-config> 16 </servlet> 17 18 <!-- ommited --> 19 20 </web-app> 21 22}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問