🌈画像コードの変更



これはプロジェクトにイメージを加えてロードする過程で生まれた文章です.
画像ファイル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;
	}
🔥教訓:時間をかけて考え、努力して、必ず量変が先行しなければならない.
そして、過去に書いたコードが当時私が尽力して書いたコードであることを忘れないでください.
私は分からないことがたくさんあって、できることもたくさんない開発者ですが、決して困難な時が来たからといってあきらめてはいけません.