2011-05-12 5 views
3

<input type="file"> 태그가있는 간단한 양식이 있다고 가정하면 사용자가 파일을 선택하고 나면 해당 파일을 표시하고 싶습니다. img)을 볼 수 있습니다. 더 나은 사용자 경험.html 입력 태그의 파일을 참조하는 방법

은 onChange 이벤트를 기반으로 값을 설정하려고 시도했지만 작동하지 않음을 알았습니다.

의견이 있으십니까?

+0

일부 코드를 삭제하는 것은 어떻습니까? –

답변

3

브라우저 샌드 박스에서 클라이언트의 파일 시스템에 액세스 할 수 없습니다. 그것은 브라우저의 보안 모델에 위배됩니다. 파일을 표시하려면 먼저 사용자가 파일을 업로드 할 때까지 기다려야합니다.

+0

내 게시물의 여러 웹 사이트에서 사용되는 솔루션을 참조하십시오. –

+0

그것은 깔끔한 트릭이지만 근본적으로 내가 말했던 것의 변형입니다. 파일을 페이지에 표시하기 전에 서버에 업로드해야한다는 것입니다. 이 기법을 사용하는 웹 사이트의 예를 들어 줄 수 있습니까? – Asaph

+0

예를 들어 Gmail의 연락처를 참조하십시오. 이미지를 선택하면 즉시 표시됩니다. 다른 많은 예를 찾을 수 있습니다. 미안하지만 다른 순간은 기억이 안납니다. –

1

유일한 방법은 onChange 이벤트를 catch하고 Ajax를 사용하여 파일을 업로드하는 것입니다 (비동기식으로).

힌트 : onChange 이벤트에 양식을 제출하고 서버 측 스크립트로 게시물 데이터를 보냅니다.

이 기술은 많은 웹 사이트에서 사용되지만 클라이언트의 연결 속도가 느리고 파일 크기가 클 경우 속도가 느려집니다. 행운을 빕니다!

0

이미지를 업로드하기 전에 업로드해야합니다. 트릭을 수행 할 JQuery 스 니펫은 다음과 같습니다.

$('input:file').change(function(){ 
    var file = this.files[0]; 
    var reader = new FileReader(); 
    reader.onload = (function(event) { 
    $('#previewImage').attr('src',event.target.result); 
    }); 
    reader.readAsDataURL(file); 
}); 
관련 문제