2011-09-05 2 views
4

특정 파일 형식을 식별 할 수있는 온라인 도구를 만들고 있습니다. 이 작업을 수행하려면 파일 헤더에서 일부 바이트 값에 액세스해야합니다.웹 페이지에서 클라이언트 측 파일 헤더를 읽는 방법?

사용자가 클라이언트 컴퓨터에서 파일을 선택합니다. 어떻게 든, 나는 파일에서 키 바이트 값을 가져와야하고, 이것들은 파일을 카테고리 화하기 위해 서버 측 데이터베이스에서 찾는다.

어떻게하면 클라이언트 측 파일에서 바이트를 읽을 수 있습니까?

사용자가 서버에 파일을 업로드하도록 할 수는 있지만이 파일은 매우 크고 전체 파일을 업로드하는 데 시간이 오래 걸리므로 몇 바이트 만 필요합니다.

어떻게 든 파일의 일부를 업로드 할 수 있습니까? html 양식 업로드를 취소하는 것이 어렵고 취소 후 파일 부분을 사용할 수없는 것 같습니다. 이 올바른지?

자바 스크립트로 파일을 읽을 수 있습니까? 나는 이것을 봤지만 그 대답은 불분명하다. 나는 그것이 애플릿이 서명 된 경우에만 자바 애플릿으로 가능하다는 것을 읽었습니다.

다른 방법이 있습니까?

답변

3

html5를 사용할 수 있지만 구형 브라우저의 경우 플래시 또는 다른 비 자바 스크립트 메소드로 폴백해야합니다.

http://www.html5rocks.com/en/tutorials/file/dndfiles/

+0

감사 Karl. 어떤 브라우저에서 이것을 지원하는 목록이 있습니까? – Sugrue

+0

어쨌든 HTML5 File API보다 훨씬 많은 Flash가 설치되어있는 것이 좋습니다. 비록 당신이 원한다면 플래시를 자바 스크립트로 다시 보내고, 플래시/HTML5를 사용할 수있을 때마다 둘 다 사용할 수 있습니다. – Andreas

+0

좋은 링크 : http://www.thebuzzmedia.com/html5-drag-and-drop-and-file-api-tutorial/ – Sugrue

1

so. 위에서 말했듯이 자바 스크립트가 아닌 methodds를 사용해야합니다. 그러나이 방법들에는 각각 마이너스가 있습니다. 플래시 - 프록시가 작동하지 않습니다. 정말 나빴어. 물론 파일의 base64 코드를 얻기 위해 플래시를 obly로 사용하고 js에 줄 수 있습니다. 이 경우 작업 greate 것입니다. 자바 애플릿 - greate는 작동하지만 많은 사용자가 JVM을 가지고 있지 않거나 JVM 버전이 sasme가 아닐 수 있습니다 (그러나 JDK1.4 또는 1.5를 사용하는 경우에는 문제가 없습니다). ActiveX - IE 및 Windows에서만 작동합니다. HTML5 File Api - 크로스 브라우저 솔루션이 아닙니다. 마지막 브라우저에서만 작동하며 전체에서 작동하지 않습니다.

물론 서버 측에서 PHP를 사용할 때 getmimetype 및 기타 기능을 사용하는 것이 좋습니다.

하지만 내 파일의 헤더를 수동으로 변경할 수 있습니다. 예를 들어 jpeg 또는 png에서 PHP 파일 헤더를 추가 할 수 있으며 스크립트는 이미지라고 생각합니다.

그래서 이것은 나쁜 해결책입니다. 헤더를 사용하십시오. 파일 형식을 확인하려면 사용자의 신뢰 파일의 MIME 형식을 사용하고 파일 확장명을 통해 아이콘을 생성하십시오.

+0

답장을 보내 주셔서 감사합니다. 내 파일은 비디오이므로 크기는 10MB - 1GB입니다. 첫 번째 1kb (헤더)를 업로드 할 수 없다면 serverside로 업로드하는 것은 옵션이 아닙니다. 파일의 일부만 업로드하는 방법은 무엇입니까? – Sugrue

관련 문제