🌈画像コードの変更
これはプロジェクトにイメージを加えてロードする過程で生まれた文章です.
画像ファイルformでサーバにファイルを格納し、dbはファイル名のみをsubStringに切り取って保存します.
そのため、保存が難しくない状況で成功しました.本当の問題は画像を使うことです.
メニュー詳細照会ページ(解決した写真ㅠ)
本当の問題は、上の写真のように、私がデータベースに置いた画像を送って、表示することです.しかし、私は学んだことがないと思いますが、先にぶつかって、いつものように、ほほほ、まず次のコードを見て説明します.
イニシャルコード
<tr>
<td>${data.MNO}</td>
<td><input type="text" id="m_Name" name="m_Name" value="${data.MNAME}"></td>
<td>${data.CNAME}</td>
<td><input type="text" id="m_Price" name="m_Price" value="${data.MPRICE}"></td>
<td>
<img id="m_Img" name="m_Img" src="${data.MIMG}">
<input type="button" value="이미지파일선택" id="fileBtn"/>
</td>
<td><input type="text" id="m_Note" name="m_Note" value="${data.NOTE}"></td>
</tr>
</table>
<input type="hidden" id="userNo" name="userNo" value="${sUSERNo}"/>
<input type="hidden" id="m_File" name="m_File" value="${data.MIMG}"/>
<input type="hidden" id="img_Cnt" name="img_Cnt" value="0"/>
</div> <!--content end -->
</div> <!--content_Area end -->
そうすると、画面に画像がなく、DBに置かれたファイル名が表示されます.そのため、次回直接画像を読み込むにはパスが必要なので、まずパスを探して貼り付けます.
<input type="hidden" id="m_File" name="m_File" value="resources/upload/+"${data.MIMG}+"/>
本当に上のコードのように書いて試したことがありますが、その時は分かりませんでしたが、今は問題がどこにあるか知っています.そこで、どうすればロードできるかを考え、一緒に勉強している友人からアドバイスをもらい、コントローラにパスを追加してデータを入れる方法を選びました.
컨트롤러
@RequestMapping(value="/Menu_Edit")
public ModelAndView Menu_Edit(
@RequestParam HashMap<String, String> params,
ModelAndView mav) throws Throwable{
HashMap<String, String> data = ijhService.getMd(params)
String path = "resources/upload/"+data.get("MIMG");
data.put("MIMG", path);
mav.addObject("data", data);
System.out.println("수정 데이터 보자"+data);
mav.setViewName("jh/Menu_Edit");
return mav;
}
//메뉴 상세보기
@RequestMapping(value="/Menu_Dtl")
public ModelAndView Menu_Dtl(
@RequestParam HashMap<String, String> params,
ModelAndView mav) throws Throwable {
HashMap<String, String> data = ijhService.getMd(params);
//사진 경로 붙여주는 곳
if(Integer.parseInt(String.valueOf(data.get("EFLAG"))) == 1) {
String path = "resources/upload/"+data.get("MIMG");
data.put("MIMG", path);
}
System.out.println("상세보기 데이터"+data);
mav.addObject("data", data);
mav.setViewName("jh/Menu_Dtl");
return mav;
}
この方法の問題は、画像の読み込みの各場所の前にパスが追加され、ファイルが破損し、再読み込みできなくなり、データベース内のファイル名が変更され、ストレージの問題が発生することです.私が考えた方法は、画像を修正するかどうかに基づいてテーブルを作成し、値を与え、条件処理値を追加して解決することです.
問題を解決する方法はありますか?考えながら、昼食をとりながら、授業中に習った和音を見ながら、この和音を見つけました.
<a href="resources/upload/${data.B_FILE}" download="${fn:substring(data.B_FILE,20,len)}">
私が上で文法を書き間違えたので、失敗の原因と私の悩みの解決方法はこのコードの中にあります!!だから直接運転に移り、やはりすべての問題を解決し、コードを修正しました.
디테일 이미지
<tr>
<td>${data.MNO}</td>
<td>${data.MNAME}</td>
<td>${data.CNAME}</td>
<td>${data.MPRICE}</td>
<td><img id="m_Img" alt="메뉴 이미지" src="resources/upload/${data.MIMG}"></td>
<td>${data.NOTE}</td>
</tr>
컨트롤러
//메뉴 상세보기
@RequestMapping(value="/Menu_Dtl")
public ModelAndView Menu_Dtl(
@RequestParam HashMap<String, String> params,
ModelAndView mav) throws Throwable {
HashMap<String, String> data = ijhService.getMd(params);
//나의 과오를 잊지않기 위해서 주석으로 남겨 놓았다.
/*
* if(Integer.parseInt(String.valueOf(data.get("EFLAG"))) == 1) {
*
* String path = "resources/upload/"+data.get("MIMG"); data.put("MIMG", path); }
*/
System.out.println("상세보기 데이터"+data);
mav.addObject("data", data);
mav.setViewName("jh/Menu_Dtl");
return mav;
}
🔥教訓:時間をかけて考え、努力して、必ず量変が先行しなければならない.そして、過去に書いたコードが当時私が尽力して書いたコードであることを忘れないでください.
私は分からないことがたくさんあって、できることもたくさんない開発者ですが、決して困難な時が来たからといってあきらめてはいけません.
Reference
この問題について(🌈画像コードの変更), 我々は、より多くの情報をここで見つけました https://velog.io/@wogus216/이미지-수정-코드-수정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol