gPdus
92
2019-11-26 11:47:53
7
289

코드리뷰 Not allowed to load local resource에러 도와주세여ㅠㅠㅠㅠ


화면에 이미지와 동영상이 나와야 하는데  안 나옵니다ㅠㅠ


파일을 가져오는 부분

jsp

<body>
    <div id="play"><video id="video" src="" autoplay muted controls></video><img id="img" alt="" src=""></div>
</body>

javascript

<script>
    $("#img").hide();
    $("#video").hide();
    function playList() {
        $.ajax({
            url: "videoPlay?cen_no=${cen_no}&play_name=${play_name}",
            type: "GET",
            dataType: "json",
            success: function (list) {
                console.log(list);
                for (let i = 0i < list.lengthi++) {
                    $("#playName").html(list[i].PLAY_NAME);
                    const file_name = list[i].FILE_ORGNAME;
                    const file_loc = list[i].FILE_LOC + file_name;
                    const file_type = file_name.substr(file_name
                        .lastIndexOf(".") + 1);
                    console.log("경로= " + file_loc);
                    if (file_type == "jpg" || file_type == "png") {
                        $("#img").attr('src'file_loc);
                        $("#img").show();
                    } else {
                        $("#video").attr('src'file_loc);
                        $("#video").show();
                    }
                }
            },
            error: function (error) {
                console.log(error);
            }
        });
    }
</script>

controller

@RequestMapping(value = "/videoPlay", method = RequestMethod.GET)
public @ResponseBody ArrayList<HashMap<String, Object>> videoPlay(HttpServletRequest request) {
    ArrayList<HashMap<String, Object>> list = bs.videoPlay(request);
        return list;
}

service

public ArrayList<HashMap<String, Object>> videoPlay(HttpServletRequest request) {
    Map<String, Object> map = new HashMap<String, Object>();
    String cen_no = request.getParameter("cen_no");
    String play_name = request.getParameter("play_name");
    map.put("cen_no", cen_no);
    map.put("play_name", play_name);
    ArrayList<HashMap<String, Object>> vList = bDao.videoPlay(map); // FILE_ORGNAME에서 X빼고 SELECT
    return vList;
}


파일을 넣는 부분

jsp

<body>
    <form id="fileUploadF" action="fileInsert?cen_no=${cen_no}" method="post" enctype="multipart/form-data"
        class="form-inline">
        <table style="border-spacing: 8px; height: 350px">
            <thead>
                <tr>
                    <td>홍보영상 명</td>
                    <td><input type="text" name="playName"></td>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><input type="text" name="play_turn1" value="1" readonly="readonly"
                            style="width: 50px; text-align: center"></td>
                    <td><input type="file" multiple="multiple" name="1" /></td>
                </tr>
                <tr>
                    <td><input type="text" name="play_turn2" value="2" readonly="readonly"
                            style="width: 50px; text-align: center"></td>
                    <td><input type="file" multiple="multiple" name="2" /></td>
                </tr>
                <tr>
                    <td><input type="text" name="play_turn3" value="3" readonly="readonly"
                            style="width: 50px; text-align: center"></td>
                    <td><input type="file" multiple="multiple" name="3" /></td>
                </tr>
                <tr>
                    <td><input type="text" name="play_turn4" value="4" readonly="readonly"
                            style="width: 50px; text-align: center"></td>
                    <td><input type="file" multiple="multiple" name="4" /></td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="2"><button type="submit" class="btn btn-outline-success">등록</button></td>
                </tr>
            </tfoot>
        </table>
    </form>
</body>

controller

@RequestMapping(value = "/fileInsert", method = RequestMethod.POST)
    public ModelAndView fileInsert(MultipartHttpServletRequest multi, HttpServletRequest request) {
    mav = new ModelAndView();
    mav = bs.fileInsert(multi, request);
    return mav;
}

service

@Transactional
	public ModelAndView fileInsert(MultipartHttpServletRequest multi, HttpServletRequest request) {
		mav = new ModelAndView();
		String path = request.getRealPath("resources/upload/");
		String fileName = "";
		String cen_no = request.getParameter("cen_no");
		String play_name = request.getParameter("playName");
		Map<String, String> fMap = new HashMap<String, String>();
		List<String> fList = new ArrayList<String>();
		List<String> tList = new ArrayList<String>();

		fMap.put("cen_no", cen_no);
		fMap.put("play_name", play_name);
		String chkResult = bDao.chkFile(fMap); // 플레이명 중복 체크
		if (chkResult == null) {
			boolean result = bDao.playInsert(fMap); // 플레이 명 insert
			if (result) {
				System.out.println("플레이 리스트 insert 성공");
			}
		} else {
			mav.addObject("fail", "<script>alert('이미 등록된 이름입니다.')</script>");
		}

		File dir = new File(path);
		if (!dir.isDirectory()) { // 해당 디렉토리가 없으면 생성
			dir.mkdirs(); // 폴더 생성
			System.out.println("폴더 생성");
		}
		Iterator<String> files = multi.getFileNames();
		while (files.hasNext()) {
			String uploadFile = files.next(); // 파일 name 값
			MultipartFile mFile = multi.getFile(uploadFile);
			fileName = mFile.getOriginalFilename(); // 파일 이름
			if (fileName != null && fileName != "") {
				fList.add(fileName);
			} else {
				fList.add("X");
			}
			try {
				if (!fileName.isEmpty()) {
					mFile.transferTo(new File(path + fileName));
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		fMap.put("file_loc", path);
		for (int i = 0; i < fList.size(); i++) {
			tList.add(request.getParameter("play_turn" + (i + 1)));
			String file_name = fList.get(i);
			String play_turn = tList.get(i);
			if (file_name != null && file_name != "") {
				fMap.put("file_name", file_name);
				fMap.put("play_turn", play_turn);
				boolean result = bDao.fileInsert(fMap); // file insert
				if (result) {
					mav.addObject("ok", "<script>alert('등록완료')</script>");
				}
			}
		}
		mav.setViewName("myPage.jsp?page=fileList");
		return mav;
	}

이런 식으로 되어있습니다.


구조는 센터, bit(기기), web이 있는데

센터에서 web에 파일(동영상, 이미지)를 등록하면
bit에서 web에 등록된 정보를 읽어와 파일을 다운로드 하여 보여주어야 합니다

bit는 센터에서 관리합니다.

0
0
  • 답변 7

  • icksss
    1k
    2019-11-26 13:24:29
    0
  • gPdus
    92
    2019-11-26 13:30:25 작성 2019-11-26 13:30:42 수정됨


    icksss 님 그럼 어떤 방법이 있을까용...ㅠㅠ
    0
  • icksss
    1k
    2019-11-26 13:42:53

    1.서버에 파일이 존재하도록 한다.

    2.파일을 다운로드 하는 컨트롤러를 만든다.

    3.HTML5 VIDEO TAG를 이용하여, 파일 다운로드 URL을 SRC로 넣어준다.

    4.VIDEO TAG의 옵션을 활용하여, 자동 PLAY 등 기능을 구현한다.

    0
  • gPdus
    92
    2019-11-26 13:55:36

    icksss 위에 코드처럼 컨트롤과 서비스단을 만들었는데 저렇게 하는 방법이 맞나요...
    서버에 파일이 존재하도록 하는게
    경로설정을 저렇게 하는 게 맞나 싶어서여...ㅠㅠㅠㅠ

    0
  • gPdus
    92
    2019-11-26 13:59:37

    db에는 이렇게 넣어집니당


    0
  • gPdus
    92
    2019-11-26 14:00:32


    0
  • icksss
    1k
    2019-11-28 13:53:32

    컨트롤러를 호출했을때, 파일이 다운로드가 되면, 정상. 아니면, 비정상.

    db에 들어간 경로에 파일이 존재 해야하고, 서버에서 db 읽어서, 경로에 있는 파일을 load  하여, 다운로드 하도록 해야죠.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.