springboot实现上传图片遇到的问题小结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了springboot实现上传图片遇到的问题小结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4888字,纯文字阅读大概需要7分钟。
内容图文
![springboot实现上传图片遇到的问题小结](/upload/InfoBanner/zyjiaocheng/141/df98a7d52aff487ab9cd86172a2dbc53.jpg)
被这个问题困扰了许久,最后是这样的解决的:在main目录下新建了一个webapp文件夹,并且对其路径进行了配置。下面是一个解决方案的小demo,做的比较简单,请见谅~~核心代码如下:
注册界面:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Title</title> </head> <body> <form action="/zhuce" th:action="@{/zhuce}" method="post" enctype="multipart/form-data" > <label>姓名</label><input type="text" name="name"/> <label>密码</label><input type="password" name="password"/> <label>上传图片</label> <input type="file" name="file"/> <input type="submit" value="上传"/> </form> </body> </html>
control如下:
package com.example.demo.control; import com.example.demo.dao.UserRepository; import com.example.demo.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.*; /** * Created by 18274 on 2017/8/9. */ @Controller public class Control { @Autowired UserRepository userRepository; @GetMapping(value="/zhuce") public String zhuce(){ return "zhuce"; } @PostMapping(value="/zhuce") public String tijiao(@RequestParam(value="name") String name, @RequestParam(value="password") String password, @RequestParam(value="file")MultipartFile file, Model model) { User user = new User(); user.setUsername(name); user.setPassword(password); if (!file.isEmpty()) { try { BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File("f:\\旗杯\\demo5\\src\\main\\webapp\\"+name+".jpg")));//保存图片到目录下 out.write(file.getBytes()); out.flush(); out.close(); String filename="f:\\旗杯\\demo5\\src\\main\\webapp\\"+name+".jpg"; user.setTupian(filename); userRepository.save(user);//增加用户 } catch (FileNotFoundException e) { e.printStackTrace(); return "上传失败," + e.getMessage(); } catch (IOException e) { e.printStackTrace(); return "上传失败," + e.getMessage(); } model.addAttribute(user); return "permanager"; } else { return "上传失败,因为文件是空的."; } } }
个人中心:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Title</title> </head> <body> <p>用户名:</p> <p th:text="${user.username}"></p> <p>图片:</p> <img th:src="@{${user.username}+'.jpg'}"/> </body> </html>
对webapp路径的配置
package com.example.demo.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * Created by 18274 on 2017/8/9. */ @Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter{ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/src/main/webapp/**").addResourceLocations("classpath:/webapp/"); super.addResourceHandlers(registry); } }
对应的用户实体类:
package com.example.demo.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; /** * Created by 18274 on 2017/8/9. */ @Entity public class User { @Id @GeneratedValue private Long id; private String username; private String password; private String tupian;//图片地址 public User(){} public Long getId() { return id; } public String getUsername() { return username; } public String getPassword() { return password; } public String getTupian() { return tupian; } public void setId(Long id) { this.id = id; } public void setUsername(String username) { this.username = username; } public void setPassword(String password) { this.password = password; } public void setTupian(String tupian) { this.tupian = tupian; } }
用户实体类的接口:
package com.example.demo.dao; import com.example.demo.domain.User; import org.springframework.data.jpa.repository.JpaRepository; /** * Created by 18274 on 2017/8/9. */ public interface UserRepository extends JpaRepository<User,Long>{ }
最后运行如下:
注册上传头像:
个人中心:
ps:如果在结合spring security的话,只需要从session.SPRING_SECURITY_CONTEXT.authentication.principal.XXX中取得信息即可。
以上内容就是spring boot实现上传图片遇到的问题小结,希望能帮助到大家。
相关推荐:
php判断文件上传图片格式的方法介绍
3种上传图片的方法实例
推荐10款上传图片特效(收藏)
以上就是spring boot实现上传图片遇到的问题小结的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的springboot实现上传图片遇到的问题小结全部内容,希望文章能够帮你解决springboot实现上传图片遇到的问题小结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。