2010-06-03 2 views
14

다음과 같은 파일 경로를 지정하십시오.
C : \ file.jpg
어떻게 파일 크기를 자바 ​​스크립트에서 얻을 수 있습니까?자바 스크립트에서 파일 크기를 얻으려면

+0

http://code.google.com/p/gwtupload/ 확인이 일

function showFileSize() { let file = document.getElementById("file").files[0]; if(file) { alert(file.size + " in bytes"); } else { alert("select a file... duh"); } }
<input type="file" id="file"/> <button onclick="showFileSize()">show file size</button>

.그들은 어떻게 든 진행 막대를 업로드하는 것을 보여줄 수 있습니다. – Andrey

+1

'C :'에 접근 할 수있는 웹 서버가 있습니까? OS가'C :'에 있다면, 나는 반대한다. 그러나 우선 우선한다. – vol7ron

답변

25

에 따라, Content-Length 헤더를 자바 스크립트를 사용하여 HEAD 요청을 전송하고 읽을 수 있습니다 전체 액세스 권한을 가진 JavaScript는 경로 이름에서 파일 크기를 가져올 수 없습니다. javascript를 실행하는 웹 페이지는 보안상의 이유로 로컬 파일 시스템에 액세스 할 수 없습니다.

진행률 표시 줄을 표시하려면 SWFUpload과 같은 완만 한 파일 업 로더를 사용할 수 있습니다. HTML5도 File API이지만 아직 널리 지원되지 않습니다. 사용자가 input[type=file] 요소에 대한 파일을 선택하면, 당신은 files 컬렉션에서 파일에 대한 세부 정보를 얻을 수 있습니다 :

alert(myInp.files[0].size); 
+0

동일하다고 생각하지만 업로드하는 동안 스마트 웹 응용 프로그램이 진행률 표시 줄을 보여줍니다. – Andrey

+0

@Andrey : 다른 웹 응용 프로그램은 Java 또는 Flash를 사용합니다. 내 답변을 인기있는 [SWFUpload] (http://www.swfupload.org/) 링크로 업데이트했습니다. –

+0

@Andrey Flash, ActiveX 등과 같은 다른 스크립트 도구는 로컬 파일 시스템에 액세스 할 수 있습니다. 또는 특정 서버 측 기술을 사용하여 파일 업로드 진행 상황을 모니터링하고 javascript가 요청할 때 해당 정보를 다시 제공합니다. –

0

웹 브라우저를 사용하여 표준 방식으로 javascript로 로컬 파일의 파일 크기를 가져올 수 없습니다.

그러나 파일이 원격 경로에서 액세스 할 수있는 경우는 전원이 공급되는 로컬 응용 프로그램이 아닙니다 있다면, 당신은 웹 서버

+0

나는 똑같은 생각하지만 업로드하는 동안 스마트 웹 응용 프로그램이 진행률 표시 줄을 보여줍니다. – Andrey

+0

@Andrey 플래시 또는 바이트 또는 이와 유사한 개수를 계산할 수있는 PHP 모듈을 사용합니다. – baloo

+0

플래시는 괜찮지 만 PHP가 좋습니까? – Andrey

0

할 수 있습니다하지 자바 스크립트에는 파일 입/출력이 없기 때문에. 유사한 질문은 here을보십시오.

0

수 없습니다.

JavaScript는 보안상의 이유로 크기를 확인하기 위해 로컬 컴퓨터의 파일에 액세스 할 수 없습니다.

자바 스크립트를 사용하여 file 필드가있는 양식을 서버 측 스크립트에 제출하면 크기를 측정하고 반환 할 수 있습니다.

9
function findSize() { 
    var fileInput = document.getElementById("fUpload"); 
    try{ 
     alert(fileInput.files[0].size); // Size returned in bytes. 
    }catch(e){ 
     var objFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     var e = objFSO.getFile(fileInput.value); 
     var fileSize = e.size; 
     alert(fileSize);  
    } 
} 
+3

설명을 추가 할 수 있습니까? – CraigTeegarden

+0

HTML5 방식을 지원하지 않는 브라우저의 경우 잡을 것 같아요. – GabrielBB

0

내가 할 수있는 자바 스크립트 북마크를 내장 웹 페이지의 파일 크기를 얻으려면 장난. 크기를 kb로 알려줍니다. 파일 크기를 복사하려면 경고를 프롬프트로 변경하십시오.

다음은 경고에 대한 북마크릿 코드입니다.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);alert(c+' kb');">Doc Size</a> 

다음은 프롬프트의 북마크 코드입니다.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);prompt('Page Size',c+' kb');">Doc Size</a> 

이 하나를 시도 http://bookmarklets.to.g0.to/filesize.php

0

에서 행동을 참조하십시오.

관련 문제