>  기사  >  웹 프론트엔드  >  JavaScript는 어떻게 다른 브라우저에서 로컬 파일 내용을 읽을 수 있습니까?

JavaScript는 어떻게 다른 브라우저에서 로컬 파일 내용을 읽을 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 22:32:15874검색

How Can JavaScript Read Local File Contents in Different Browsers?

다양한 브라우저의 JavaScript로 클라이언트측 파일 내용 읽기

브라우저를 사용하여 클라이언트 시스템에서 파일 내용을 읽으려고 하면 스크립트 전용 솔루션은 Firefox 및 Internet Explorer용으로 개발되었습니다. 이 솔루션은 Firefox용 파일 API와 Internet Explorer용 ActiveXObject를 활용합니다.

Firefox용 파일 API

function getFileContents() {
    var fileForUpload = document.forms[0].fileForUpload;
    var fileName = fileForUpload.value;

    if (fileForUpload.files) {
        var fileContents = fileForUpload.files.item(0).getAsBinary();
        document.forms[0].fileContents.innerHTML = fileContents;
    }
}

Internet Explorer용 ActiveXObject

function ieReadFile(filename) 
{
    try
    {
        var fso  = new ActiveXObject("Scripting.FileSystemObject"); 
        var fh = fso.OpenTextFile(filename, 1); 
        var contents = fh.ReadAll(); 
        fh.Close();
        return contents;
    }
    catch (Exception)
    {
        return "Cannot open file :(";
    }
}

크로스 브라우저 지원

단, Safari, Chrome 등 다른 브라우저에서는 위의 방법으로 이 작업을 수행할 수 있는 알려진 방법이 없습니다. 이러한 브라우저에 구현된 파일 API는 파일 이름과 파일 크기에 대한 액세스만 제공하며 콘텐츠를 읽는 기능은 부족합니다.

파일 API 업데이트

파일 이후 API는 IE 10 이상을 포함한 대부분의 최신 브라우저에서 표준화되고 구현되었습니다. 이 API는 비동기식 파일 읽기, 바이너리 파일 처리 및 텍스트 인코딩 디코딩을 지원합니다.

var file = document.getElementById("fileForUpload").files[0];
if (file) {
    var reader = new FileReader();
    reader.readAsText(file, "UTF-8");
    reader.onload = function (evt) {
        document.getElementById("fileContents").innerHTML = evt.target.result;
    }
    reader.onerror = function (evt) {
        document.getElementById("fileContents").innerHTML = "error reading file";
    }
}

WebKit 및 HTML 5 제안

또는 원할 경우 제출할 수도 있습니다. HTML 5에 포함할 Mozilla API를 패치하거나 제안하여 향후 브라우저 간 호환성 가능성을 높입니다.

위 내용은 JavaScript는 어떻게 다른 브라우저에서 로컬 파일 내용을 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.