왜 할 수
없습니까?
html 파일이 로컬 (내 C 드라이브) 인 경우 작동하지만 html 파일이 서버에 있고 이미지 파일이 로컬 인 경우에는 작동하지 않습니다. 왜 그런 겁니까?
가능한 해결 방법이 있습니까?
클라이언트가 로컬 파일 시스템 파일을 요청한 다음 JavaScript를 사용하여 파일에 무엇이 있는지 알아낼 수 있다면 보안 취약점이됩니다.
이 문제를 해결하는 유일한 방법은 브라우저에서 확장을 빌드하는 것입니다. Firefox 확장 및 IE 확장은 로컬 리소스에 액세스 할 수 있습니다. Chrome은 훨씬 더 제한적입니다.
"C : /localfile.jpg"대신 "file : // C : /localfile.jpg"를 사용하면 안됩니까?
로컬 html 페이지에 액세스하지 않는 한 브라우저는 로컬 파일 시스템에 액세스 할 수 없습니다. 이미지를 어딘가에 업로드해야합니다. html 파일과 동일한 디렉토리에 있으면 다음을 사용할 수 있습니다.<img src="localfile.jpg"/>
C:
인식 된 URI 체계가 아닙니다. file://c|/...
대신 시도하십시오 .
솔직히 가장 쉬운 방법은 서버에 파일 호스팅을 추가하는 것입니다.
IIS 열기
기본 웹 사이트 아래에 가상 디렉터리 추가
- 가상 경로는 브라우저에서 찾아 보려는 것입니다. 따라서 " serverName / images 를 선택 하면 http : // serverName / images 로 이동하여 찾아 볼 수 있습니다 .
- 그런 다음 C : 드라이브에 물리적 경로를 추가합니다.
"NETWORK SERVICE"및 "IIS AppPool \ DefaultAppPool"에 대한 C : 드라이브의 폴더에 적절한 권한을 추가합니다.
기본 웹 사이트 새로 고침
그리고 당신은 끝났습니다. 이제 http : //yourServerName/whateverYourFolderNameIs/yourImage.jpg 로 이동하여 해당 폴더의 모든 이미지를 탐색하고 img src에서 해당 URL을 사용할 수 있습니다.
이것이 누군가를 돕기를 바랍니다.
IE 9 : 사용자가 이미지를 서버에 게시하기 전에 먼저보기를 원하는 경우 : 사용자는 웹 사이트를 "신뢰할 수있는 웹 사이트 목록"에 추가해야합니다.
보안 규칙에 대한 Newtang의 관찰은 제쳐두고 귀하의 페이지를 보는 사람이 올바른 이미지를 갖게 될 것인지 어떻게 알 수 c:\localfile.jpg
있습니까? 당신은 할 수 없습니다. 할 수 있다고 생각하더라도 할 수 없습니다. 한 가지는 Windows 환경을 전제로합니다.
나는 당신이하려는 일에 대해 두 가지 가능성을 봅니다.
서버에서 실행되는 웹 페이지가 원래 디자인 한 컴퓨터에서 파일을 찾기를 원하십니까?
페이지에서보고있는 PC에서 가져 오시겠습니까?
옵션 1은 의미가 없습니다. :)
옵션 2는 보안 허점이며, 브라우저는 웹 페이지 (웹에서 제공됨)가 뷰어의 컴퓨터에 콘텐츠를로드하지 못하도록 금지합니다.
카일 허드슨이 당신이해야 할 일을 말했지만, 그것은 너무 기초적이어서 이것이 당신이하고 싶은 전부라고 믿기가 어렵다는 것을 알았습니다.
Google 크롬 브라우저를 사용하는 경우 다음과 같이 사용할 수 있습니다.
<img src="E://bulbpro/pic_bulboff.gif" width="150px" height="200px">
그러나 Mozila Firefox를 사용하는 경우 "file"예를 추가해야합니다.
<img src="file:E://bulbpro/pic_bulboff.gif" width="150px" height="200px">
이미지도 업로드 한 다음 서버의 이미지에 연결해야합니다.
사용자가 이미지를 선택하는 것은 어떻습니까? input : file 태그를 사용한 다음 이미지를 선택한 후 클라이언트 측 웹 페이지에 표시 하시겠습니까? 그것은 대부분의 일에서 가능합니다. 지금은 IE에서 작동하도록 노력하고 있지만 모든 Microsoft 제품과 마찬가지로 클러스터 fork ()입니다.
자신 또는 특정 클라이언트를위한 로컬 웹 사이트를 배포하는 경우 mklink /D MyImages "C:/MyImages"
cmd의 관리자로 웹 사이트 루트 디렉터리에서 실행하여이 문제를 해결할 수 있습니다 . 그런 다음 html에서 do <img src="MyImages/whatever.jpg">
및 mklink에 의해 설정된 심볼릭 링크는 상대 src 링크를 C 드라이브의 링크와 연결합니다. 그것은 나를 위해이 문제를 해결했기 때문에이 질문에 오는 다른 사람들에게 도움이 될 수 있습니다.
(분명히 이것은 사람들의 컴퓨터에서 cmd 명령을 쉽게 실행할 수 없기 때문에 공개 웹 사이트에서는 작동하지 않습니다)
javascript의 FileReader () 와 readAsDataURL (fileContent) 함수를 사용하여 로컬 드라이브 / 폴더 파일을 표시 할 수 있습니다. 변경 이벤트를 이미지에 바인딩 한 다음 javascript의 showpreview 함수를 호출합니다. 이 시도 -
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;'>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
function showpreview(e) {
var reader = new FileReader();
reader.onload = function (e) {
$("#previewImage").attr("src", e.target.result);
}
//Imagepath.files[0] is blob type
reader.readAsDataURL(e.files[0]);
}
</script>
</head>
<body >
<div>
<input type="file" name="fileupload" value="fileupload" id="fileupload" onchange='showpreview(this)'>
</div>
<div>
</div>
<div>
<img width="50%" id="previewImage">
</div>
</body>
</html>
참고URL : https://stackoverflow.com/questions/4090712/why-cant-i-do-img-src-c-localfile-jpg
'program tip' 카테고리의 다른 글
파이썬의 sorted () 함수는 안정적입니까? (0) | 2020.09.22 |
---|---|
Android : Bitmap recycle ()은 어떻게 작동합니까? (0) | 2020.09.22 |
번호 매기기 목록의 코드 블록 (위키 구문) (0) | 2020.09.22 |
OnTouch와 OnClick Android의 차이점 (0) | 2020.09.22 |
이 모든 OpenCV Python 인터페이스의 차이점은 무엇입니까? (0) | 2020.09.22 |