最近、Spring Bootを使用してWebサイトを構築する過程で問題が発生しました。登録するとき、ユーザーは自分のプロフィール写真をアップロードする必要があります。登録が成功した後、彼はパーソナルセンターにジャンプし、パーソナルセンターにユーザー情報を表示しました。プロフィール写真を表示するときに問題が発生しました。プロフィール写真をアップロードするとき、プロジェクトファイルの下の静的フォルダーにプロファイル写真を保存し、対応するユーザーにアドレスをデータベースに保存し、アイデアにホット展開を追加しましたが、個人センターに登録してジャンプした後、プロファイル写真を表示できません。次回個人センターに入るときにプロジェクトが開始された場合にのみ可能です。
私はこの問題に長い間悩まされていましたが、最終的にこのように解決しました。メインディレクトリに新しいWebAppフォルダーを作成し、そのパスを構成しました。以下は、ソリューションの小さなデモです。それは比較的簡単です、私を許してください~~コアコードは次のとおりです:
登録インターフェイス:
<!doctype html> <html lang = "en" xmlns:th = "http://www.thymeleaf.org"> <head> <head> <head> <head> <head> <title </title> </head> <body> <formアクション= "/zhuce" enctype = "multipart/form-data"> <label> name </label> <入力タイプ= "text" name = "name"/> <abood> password </lable> <入力タイプ= "パスワード" name = "パスワード"/> <ラベル> </label> <入力タイプ= "ファイル"ファイル= "ファイル"/> <入力= "
コントロールは次のとおりです。
パッケージ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.stereoty.controller; springframework.web.bind.annotation.getMapping; import org.springframework.web.bind.annotation.postmapping; Import org.springframework.web.annotation.RequestParam; Import org.springframework.web.multipart.multipart.multipart.multipart.multipart.multipart.multipart.multipart.multipart.multipart.multipart.Multipart. 18274年2017/8/9。 */ @ControllPublic 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")マルチパートファイルファイル、モデルモデル){ユーザーユーザー=新しいユーザー(); user.setUsername(name); user.setPassWord(パスワード); if(!file.isempty()){try {bufferedoutputStream out = new fileoutputStream(new file file(new File( "f:// demo5 // src // main // webapp //"+name+"。Jpg"); out.close(); string filename // demo5 // main // "+name+" e.getMessage()パーソナルセンター:
<!doctype html> <html lang = "en" xmlns:th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> </title> </head> <body> <p> username:</p> <p Th:text = "$ {user.username}"> </p> <p>画像:</p> <img th:src = "@{$ {user.username}+'。Jpg'}"/> </body> </html>WebAppパスの構成
パッケージ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.webmvcureradapter; 18274年2017/8/9。 */ @configurationPublic class mywebappconfigurerはwebmvcconfigureradapterを拡張します{@override public void addresourcehandlers(resourcehandlerregistry registry){registry.addresourcehandler( "/src/main/webapp/**")。 super.addresourcehandlers(レジストリ); }}対応するユーザーエンティティクラス:
パッケージcom.example.demo.domain; Import javax.persistence.entity; Import javax.persistence.generatedValue; Import javax.persistence.id;/*** 2017/8/9に18274によって作成されました。 */ @entitypublic classユーザー{@id @generatedValueプライベートロングID;プライベート文字列ユーザー名;プライベート文字列パスワード。 private string tupian; //画像アドレスpublic user(){} public long getid(){return id; } public string getUsername(){return username; } public string getPassWord(){パスワードを返します。 } public string gettupian(){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 setupian(String Tupian){this.tupian = tupian; }}ユーザーエンティティクラスへのインターフェイス:
パッケージcom.example.demo.dao; import com.example.demo.domain.user; Import org.springframework.data.jpa.repository.jparepository;/*** 18274が2017/8/9に作成しました。 */publicインターフェイスuserrepository拡張jparepository <user、long> {}最後に次のように実行します。
Avatarをアップロードするために登録してください:
パーソナルセンター:
PS:Spring Securityを組み合わせている場合は、session.spring_security_context.authentication.principal.xxxから情報を取得するだけです。
アップロードされたこの小さなデモのアドレスを添付してください。
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
要約します
上記は、写真をアップロードしてページに表示して問題に遭遇するSpring Boot実装の概要です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!