Tips yang baik
Dalam sistem manajemen anggota Spring Boot, perlu untuk melibatkan kerangka kerja pegas, kerangka kerja SpringMVC, kerangka kerja hibernasi, dan mesin template thymeleaf. Karena itu, Anda dapat mempelajari pengetahuan ini. Tentu saja, tidak apa -apa menggunakannya secara langsung jika Anda memulai, tetapi mungkin agak sulit jika Anda melibatkan beberapa pengecualian dan prinsip.
1. Bagian front-end
Di bagian front-end addmember.html mengirimkan informasi anggota melalui formulir formulir, yang mencakup fungsi unggahan gambar (operasi unggahan file terlibat). Kode dalam bagian formulir adalah sebagai berikut:
<Form TH: Action = "@{/admin/addMember}" Method = "POST" ENCTYPE = "Multipart/Form-data" id = "AddMember"> <div> <div> <span> Pilih file avatar </span> <input id = "file" type = "file" name = "iconPath" MIPEMAH = "" "" "PlaceOper" oFEOP = "FILE" NAME = "ICONPATH" MIMPLOW = "" "" "" "" "" "" </div> <div> <!-<input type = "text" placeholder = "Unggah satu atau lebih file">-> <img id = "myimg" src = "aset/iconpath/common.jpg"/> </div> <!-avatar file unggah pratinjau-> <cript> function id (id) {return document.) <! } function changeToop () {var file = id ("file"); if (file.value === '') {// Atur ID gambar default ("myimg"). src = 'aset/iconpath/common.jpg'; } else {preimg ("file", "myimg"); }} // Dapatkan URL input [file] Fungsi penting getFileUrl (fileId) {var url; var file = id (fileId); var agent = navigator.useragent; if (agent.indexof ("msie")> = 1) {url = file.value; } else if (agent.indexof ("firefox")> 0) {url = window.url.createObjecUrl (file.files.item (0)); } else if (agent.indexof ("chrome")> 0) {url = window.url.createObjecUrl (file.files.item (0)); } return url; } // Fungsi Pratinjau Setelah membaca gambar preimg (fileid, imgid) {var imgpre = id (imgid); imgpre.src = getFileUrl (fileId); } </script> </div> ......... </form> Ada catatan di sini: karena melibatkan unggahan file, enctype="multipart/form-data" perlu ditambahkan ke formulir, dan atribut nama dalam input sesuai dengan nama parameter yang masuk dari metode pemetaan pengontrol di backend.
2. Implementasi kode backend
Di backend, kerangka kerja SpringMVC dapat memproses file dan kemudian kami dapat menerima file dengan meneruskan parameter.
2.1 Pengontrol menangani file yang masuk
Kodenya adalah sebagai berikut:
@Postmapping ("/addmember") Public String AddMember (anggota anggota, string gradename, ikon multipartfile, peta <string, objek> model) {// memproses file yang diunggah coba {if (icon == null) // Tentukan apakah file yang diunggah adalah null return "kesalahan"; if (icon.getoriginalFileName (). Equals ("")) // Jika nama asli dari file yang diunggah adalah string kosong, terbukti bahwa anggota gambar default. // Setel sebagai gambar default kami Pathelse // Di sini saya memproses multipartfile yang diunggah dengan meneruskan kelas alat unggah file yang saya tulis. Nama file diatur ke string member.seticonPath (fileuploadutil.upload (ikon, "/aset/ikon/", uuidrandomutil.get32uuid ())); } catch (Exception e) {E.PrintStackTrace (); mengembalikan "kesalahan"; } ..... return "addMembersuccess"; }2.2 Kelas Alat Fileuploadutil Menyimpan File
Setelah file multipartfile pengontrol dilewatkan, perlu dikonversi lebih lanjut menjadi file dan disimpan ke disk, jadi saya memprosesnya secara terpisah dan menyerahkan file yang masuk ke pengontrol ke kelas alat Fileuploadutil untuk diproses. Kode spesifiknya adalah sebagai berikut:
public class FileUploadUtil { /** * Upload file* @param multipartFile multipartFile * @param prefixPath Prefixpath, relative to the path in the entire project, there is no need to add "/" at the beginning of the path * @param fileName Uploaded filename* @return The final relative path after upload + filename* @throws Exception It is possible to have null pointer exceptions and IO Pengecualian*/Upload String Statis Publik (MultipartFile MultipartFile, String PrefixPath, String FileName) melempar Exception {// Dapatkan jalur absolut yang diunggah string unggahpath = classutils.getDefaultClassLoader (). GetResource (" File file = file baru (unggah); if (! file.exists ()) if (file.mkdirs ()) system.out.println ("Direktori yang berhasil dibuat"); // Dapatkan suffixname yang diunggah = multipartfile.getoriginalfileName (). Substring (multipartfile.getoriginalFileName (). LastIndexof (".")); // Buat file file final = file baru (unggahPath+fileName+suffixname); multipartfile.transferto (file); pengembalian prefixpath+nama file+suffixname; }} Classutils di atas adalah kelas alat yang disediakan oleh Spring, dan memanggil metode getDefaultClassLoader().getResource("").getPath() adalah untuk mendapatkan jalur di bawah proyek ClassPath saat ini.
Di atas adalah bagian dari konten tentang unggahan file dalam sistem ini. Kode sumber sistem ini diunggah ke GitHub dan kode sumber yang diunduh.
Meringkaskan
Di atas adalah fungsi unggahan file dari sistem manajemen anggota Spring Boot yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!