Baru -baru ini, saya mengalami masalah dalam proses membangun situs web menggunakan Spring Boot: Saat mendaftar, pengguna perlu mengunggah gambar profil sendiri. Setelah pendaftaran yang berhasil, ia melompat ke pusat pribadi dan menampilkan informasi pengguna di pusat pribadi. Saya mengalami masalah saat menampilkan gambar profil: Saat mengunggah gambar profil, saya menyimpan gambar profil di folder statis di bawah file proyek, menyimpan alamatnya di pengguna yang sesuai di database, dan menambahkan penyebaran panas dalam ide, tetapi setelah mendaftar dan melompat ke pusat pribadi, masih tidak dapat menampilkan gambar profil. Hanya mungkin ketika proyek diluncurkan lain kali saya memasuki pusat pribadi.
Saya bermasalah dengan masalah ini untuk waktu yang lama, dan akhirnya menyelesaikannya seperti ini: Saya membuat folder WebApp baru di direktori utama dan mengkonfigurasi jalurnya. Berikut ini adalah demo kecil dari solusi. Ini relatif mudah dilakukan, tolong maafkan saya ~~ Kode inti adalah sebagai berikut:
Antarmuka pendaftaran:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> titch </iteme> </head> <body> <form Action = "/zhuce" th: action = ""@{body> <form action = "/zhuce" th: action = "@" enctype = "multipart/form-data"> <label> name </label> <input type = "text" name = "name"/> <label> kata sandi </label> <input type = "password" name = "password"/> <label> unggah </label> <input type = "file" name = "file"/> <input type = "Submit" Nilai "/unggah"Kontrolnya adalah sebagai berikut:
Paket com.example.demo.control; impor com.example.demo.dao.userrepository; import com.example.demo.domain.user; impor org.springframework.bean.factory.notation.Autowired; impor org.springframework.sereotipe.cordrole; org.springframework.web.bind.annotation.getmapping; impor org.springframework.web.bind.annotation.postmapping; impor org.springframework.web.bind.annotation.requestparam; impor org.springframework.we.bind. 18274 di 2017/8/9. */ @ControllerPublic Class Control {@Autowired userrepository userrepository; @GetMapping (value = "/zhuce") Public String zhuce () {return "zhuce"; } @PostMapping (value = "/zhuce") Public String tijiao (@RequestParam (value = "name") nama string, @RequestParam (value = "kata sandi") kata sandi string, @RequestParam (value = "file") File multipartfile, model model) {user user = User baru (); user.setusername (name); user.setPassword (kata sandi); if (! File.isempty ()) {coba {bufferedOutputStream out = new BufferedOutputStream (FileOutputStream baru (file baru ("f: // cup // demo5 // src // main // webapp //"+name+". jpg")); // simpan gambar ke director out.write. out.close (); e.getmessage ();Pusat Pribadi:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> </ title> </head> <body> <p> Nama pengguna: </p> Th: text = "$ {user.username}"> </p> <p> gambar: </p> <img th: src = "@{$ {user.username}+'. jpg'}"/> </body> </html>Konfigurasi jalur webapp
Paket com.example.demo.config; impor org.springframework.context.annotation.configuration; impor org.springframework.web.servlet.config.annotation.ResourceLerRegistry; impor org.springframework.web.servlet.config.config.config.configon 18274 di 2017/8/9. */ @Configurationpublic kelas myWebAppConfigurer memperluas webmvcconfigurerAdapter {@Override public void addResourceHandlers (ResourceHandlerRegistry Registry) {Registry.AdResourceHandler ("/SRC/Main/Webapp/**"). AddResourCourocation (""/SRC/WEB/WEBAPP/** "). AddResourCourocation (" "/SRC/WEB/WEBAPP/**"). AddResourCourocation (""/src/Web/Webapp/** "). AddResourCourocation (" "classP/Web/Webapp/Webapp/**). super.addresourceHandlers (registri); }}Kelas Entitas Pengguna yang sesuai:
Paket com.example.demo.domain; impor javax.persistence.entity; impor javax.persistence.generatedValue; impor javax.persistence.id;/*** dibuat oleh 18274 pada 2017/8/9. */ @EntityPublic Class User {@id @id @GeneratedValue Private Long ID; nama pengguna string pribadi; kata sandi string pribadi; Private String Tupian; // Image Address Public User () {} public long getId () {return id; } string publik getUserName () {return username; } public string getPassword () {return kata sandi; } public string gettupian () {return tupian; } public void setId (Long ID) {this.id = id; } public void setusername (string username) {this.username = username; } public void setPassword (kata sandi string) {this.password = kata sandi; } public void setupian (String tupian) {this.tupian = tupian; }}Antarmuka ke kelas entitas pengguna:
Paket com.example.demo.dao; import com.example.demo.domain.user; impor org.springframework.data.jpa.repository.jparepository;/*** Dibuat oleh 18274 pada 2017/8/9. */Antarmuka Publik UserRepository memperluas jParepository <user, long> {}Akhirnya jalankan sebagai berikut:
Daftar untuk mengunggah avatar:
Pusat Pribadi:
PS: Jika Anda menggabungkan keamanan musim semi, Anda hanya perlu mendapatkan informasi dari session.spring_security_context.authentication.principal.xxx.
Lampirkan alamat demo kecil ini yang diunggah:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Meringkaskan
Di atas adalah ringkasan gambar implementasi Spring Boot mengunggah dan menampilkannya di halaman dan menemukan masalah. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!