찾다
웹 프론트엔드H5 튜토리얼h5의 파일 업로드 및 다운로드 예

머리말

HTML5에서 제공되는 파일 API는 프런트엔드에 풍부한 애플리케이션을 갖추고 있습니다. 콘텐츠 업로드, 다운로드, 읽기 등은 일상적인 상호작용에서 흔히 발생합니다. 그리고 IE는 IE10 이상의 버전만 지원한다는 점을 제외하면 모바일 단말기를 포함한 다양한 브라우저와의 호환성이 비교적 좋습니다. 운영 파일의 기능을 더 잘 익히려면 먼저 각 API에 익숙해져야 합니다.

원저자: Lin Xin, 작성자 블로그:

FileList 개체 및 파일 개체

HTML의 input[type="file"] 태그에는 사용자가 여러 파일을 선택할 수 있는 다중 속성이 있으며, FileList 개체는 사용자가 선택한 파일 목록을 나타냅니다. 이 목록의 각 파일은 파일 객체입니다.

파일 개체의 속성:

  • name: 파일 이름, 경로 제외.

  • type : 파일 형식. 이미지 유형의 파일은 모두 image/로 시작하며, 이는 이미지만 업로드하도록 제한하는 데 사용할 수 있습니다.

  • 크기 : 파일 크기. 파일 크기에 따라 추가 작업을 수행할 수 있습니다.

  • lastModified: 파일이 마지막으로 수정된 시간입니다.

<input type="file" id="files" multiple><script>var elem = document.getElementById(&#39;files&#39;);elem.onchange = function (event) {var files = event.target.files;for (var i = 0; i < files.length; i++) {// 文件类型为 image 并且文件大小小于 200kbif(files[i].type.indexOf(&#39;image/&#39;) !== -1 && files[i].size < 204800){console.log(files[i].name);}}}</script>

입력에는 파일 업로드를 통해 제출할 수 있는 파일 형식을 지정하는 데 사용할 수 있는 accept 속성이 있습니다.

accept="image/*"를 사용하면 업로드할 수 있는 이미지 형식만 제한할 수 있습니다. 다만, 웹킷 브라우저에서 응답이 느린 문제가 있었고, 파일 선택 상자가 팝업되기까지 몇 초가 걸렸다.

해결책은 * 와일드카드 문자를 지정된 MIME 유형으로 변경하는 것입니다.

<input type="file" accept="image/gif,image/jpeg,image/jpg,image/png">

Blob 개체

Blob 개체는 컨테이너와 동일하며 이진 데이터를 저장하는 데 사용할 수 있습니다. 여기에는 두 가지 속성이 있는데, size 속성은 바이트 길이를 나타내고, type 속성은 MIME 유형을 나타냅니다.

만드는 방법

Blob 객체는 Blob() 생성자를 사용하여 만들 수 있습니다.

var blob = new Blob([&#39;hello&#39;], {type:"text/plain"});

Blob 생성자의 첫 번째 매개변수는 ArrayBuffer 개체, ArrayBufferView 개체, Blob 개체 및 문자열을 저장할 수 있는 배열입니다.

Blob 객체는 Slice() 메서드를 통해 새 Blob 객체를 반환할 수 있습니다.

var newblob = blob.slice(0,5, {type:"text/plain"});

slice() 메서드는 세 가지 매개 변수를 사용하며 모두 선택 사항입니다. 첫 번째 매개변수는 복사할 Blob 객체 내 바이너리 데이터의 시작 위치를 나타내고, 두 번째 매개변수는 복사본의 끝 위치를 나타내며, 세 번째 매개변수는 Blob 객체의 MIME 유형을 나타냅니다.

canvas.toBlob()은 Blob 객체를 생성할 수도 있습니다. toBlob()은 세 개의 매개변수를 사용합니다. 첫 번째는 콜백 함수, 두 번째는 이미지 유형, 기본값은 image/png, 세 번째는 이미지 품질이며 값은 0에서 1 사이입니다.

var canvas = document.getElementById(&#39;canvas&#39;);canvas.toBlob(function(blob){ console.log(blob); }, "image/jpeg", 0.5);

파일 다운로드

Blod 개체는 window.URL 개체를 통해 네트워크 주소를 생성하고 이를 a 태그의 다운로드 속성과 결합하여 파일 다운로드 기능을 구현할 수 있습니다.

예를 들어 캔버스를 이미지 파일로 다운로드합니다.

var canvas = document.getElementById(&#39;canvas&#39;);canvas.toBlob(function(blob){// 使用 createObjectURL 生成地址,格式为 blob:null/fd95b806-db11-4f98-b2ce-5eb16b38ba36var url = URL.createObjectURL(blob);var a = document.createElement(&#39;a&#39;);a.download = &#39;canvas&#39;;a.href = url;// 模拟a标签点击进行下载a.click();// 下载后告诉浏览器不再需要保持这个文件的引用了URL.revokeObjectURL(url);});

비슷한 방법으로 문자열을 텍스트 파일로 저장할 수도 있습니다.

FileReader 개체

FileReader 개체는 주로 파일을 메모리로 읽어들이고 파일의 데이터를 읽는 데 사용됩니다. 생성자

var reader = new FileReader();

를 통해 FileReader 개체를 만듭니다. 개체에는 다음과 같은 메서드가 있습니다.

  • abort: 읽기 작업을 중단합니다.

  • readAsArrayBuffer: 파일 내용을 ArrayBuffer 개체로 읽어옵니다.

  • readAsBinaryString: 파일을 바이너리 데이터로 읽습니다.

  • readAsDataURL: 파일을 data: URL 형식의 문자열로 읽습니다.

  • readAsText: 파일을 텍스트로 읽습니다.

이미지 미리보기 업로드

일반적인 응용 프로그램은 클라이언트가 이미지를 업로드한 후 readAsDataURL()을 통해 이미지를 표시하는 것입니다.

<input type="file" id="files" accept="image/jpeg,image/jpg,image/png"><img  src="/static/imghwm/default1.png"  data-src="blank.gif"  class="lazy"   id="preview" alt="h5의 파일 업로드 및 다운로드 예" ><script>var elem = document.getElementById(&#39;files&#39;),img = document.getElementById(&#39;preview&#39;);elem.onchange = function () {var files = elem.files,reader = new FileReader();if(files && files[0]){reader.onload = function (ev) {img.src = ev.target.result;}reader.readAsDataURL(files[0]);}}</script>

그러나 일부 휴대폰에서 세로로 사진을 찍을 때 사진을 업로드할 때 버그가 있고, 삼성, 아이폰을 포함해 사진이 거꾸로 되어 있는 것을 발견하게 됩니다. . . 여기에서는 솔루션을 설명하지 않습니다. 관심이 있는 경우 모바일 이미지 업로드 회전 및 압축 솔루션

데이터 백업 및 복구

FileReader 개체의 readAsText()를 통해 파일의 텍스트를 읽을 수 있습니다. Blob 객체의 기능을 사용하여 파일을 다운로드하면 데이터 내보내기 파일을 로컬에 백업할 수 있습니다. 데이터를 복원해야 할 경우 입력을 통해 백업 파일을 업로드하고 readAsText()를 사용하여 텍스트를 읽은 후 복원할 수 있습니다. 데이터.

코드는 위와 유사한 기능을 갖고 있으므로 여기서는 반복하지 않겠습니다. 특정 애플리케이션에 대해서는 notepad

Base64 인코딩

base64 인코딩을 지원하기 위해 HTML5에 atob 및 btoa 메소드가 추가되었습니다. 그들의 이름은 또한 인코딩과 디코딩을 나타내는 b에서 a로, a에서 b로 매우 간단합니다.

var a = "lin-xin.github.io";var b = btoa(a);var c = atob(b);console.log(a);     // https://lin-xin.github.ioconsole.log(b);     // aHR0cHM6Ly9saW4teGluLmdpdGh1Yi5pbw==console.log(c);     // https://lin-xin.github.io

btoa 메서드는 a의 값을 변경하지 않고 문자열 a를 인코딩하고 인코딩된 값을 반환합니다.
atob 메소드는 인코딩된 문자열을 디코딩합니다.

하지만 매개변수에 8비트 ASCII 인코딩의 문자 범위를 초과하는 중국어 문자가 포함되어 있어 브라우저에서 오류를 보고합니다. 따라서 중국어는 먼저 encodeURIComponent로 인코딩되어야 합니다.

rreee

위 내용은 h5의 파일 업로드 및 다운로드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

웹 표준과 기술은 현재까지 HTML4, CSS2 및 간단한 JavaScript에서 발전했으며 중대한 개발을 거쳤습니다. 1) HTML5는 캔버스 및 웹 스토리지와 같은 API를 도입하여 웹 응용 프로그램의 복잡성과 상호 작용을 향상시킵니다. 2) CSS3은 애니메이션 및 전환 기능을 추가하여 페이지를보다 효과적으로 만듭니다. 3) JavaScript는 화살표 기능 및 클래스와 같은 Node.js 및 ES6의 최신 구문을 통해 개발 효율 및 코드 가독성을 향상시킵니다. 이러한 변경으로 인해 웹 애플리케이션의 성능 최적화 및 모범 사례의 개발이 촉진되었습니다.

H5는 HTML5의 속기입니까? 세부 사항을 탐색합니다H5는 HTML5의 속기입니까? 세부 사항을 탐색합니다Apr 14, 2025 am 12:05 AM

H5는 HTML5의 약어 일뿐 만 아니라 더 넓은 현대 웹 개발 기술 생태계를 나타냅니다. 1. H5는 HTML5, CSS3, JavaScript 및 관련 API 및 기술을 포함합니다. 2. 그것은 더 풍부하고 대화식이며 부드러운 사용자 경험을 제공하며 여러 장치에서 원활하게 실행할 수 있습니다. 3. H5 기술 스택을 사용하여 반응 형 웹 페이지와 복잡한 대화식 기능을 만들 수 있습니다.

H5 및 HTML5 : 웹 개발에 일반적으로 사용되는 용어H5 및 HTML5 : 웹 개발에 일반적으로 사용되는 용어Apr 13, 2025 am 12:01 AM

H5 및 HTML5는 동일한 것을, 즉 html5를 나타냅니다. HTML5는 HTML의 다섯 번째 버전으로 시맨틱 태그, 멀티미디어 지원, 캔버스 및 그래픽, 오프라인 스토리지 및 로컬 스토리지와 같은 새로운 기능을 제공하여 웹 페이지의 표현성 및 상호 작용성을 향상시킵니다.

H5는 무엇을 언급합니까? 맥락 탐색H5는 무엇을 언급합니까? 맥락 탐색Apr 12, 2025 am 12:03 AM

h5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelements 및 dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enovannangeserexperienceacrossdevices.3) SemanticLementsImproveContentsTructUreAndSeo.4) H5'Srespo

H5 : 도구, 프레임 워크 및 모범 사례H5 : 도구, 프레임 워크 및 모범 사례Apr 11, 2025 am 12:11 AM

H5 개발에서 마스터 해야하는 도구 및 프레임 워크에는 vue.js, React 및 Webpack이 포함됩니다. 1.vue.js는 사용자 인터페이스를 구축하고 구성 요소 개발을 지원하는 데 적합합니다. 2. 복잡한 응용 프로그램에 적합한 가상 DOM을 통해 페이지 렌더링을 최적화합니다. 3. Webpack은 모듈 포장에 사용되며 리소스로드를 최적화합니다.

HTML5의 유산 : 현재 H5 이해HTML5의 유산 : 현재 H5 이해Apr 10, 2025 am 09:28 AM

html5hassignificallytransformedwebdevelopmentbyintranticalticlementements, 향상 Multimediasupport 및 Improvingperformance.1) itmadewebsitessmoreaccessibleadseo 친환경적 인 요소, 및 .2) Html5intagnatee

H5 코드 : 접근성 및 시맨틱 HTMLH5 코드 : 접근성 및 시맨틱 HTMLApr 09, 2025 am 12:05 AM

H5는 시맨틱 요소 및 ARIA 속성을 통해 웹 페이지 접근성 및 SEO 효과를 향상시킵니다. 1. 컨텐츠 구조를 구성하고 SEO를 개선하기 위해 사용합니다. 2. Aria-Label과 같은 ARIA 속성은 접근성을 향상시키고 보조 기술 사용자는 웹 페이지를 원활하게 사용할 수 있습니다.

H5는 html5와 동일합니까?H5는 html5와 동일합니까?Apr 08, 2025 am 12:16 AM

"H5"와 "HTML5"는 대부분의 경우 동일하지만 특정 시나리오에서는 다른 의미를 가질 수 있습니다. "HTML5"는 새로운 태그와 API를 포함하는 W3C 정의 표준입니다. "H5"는 일반적으로 HTML5의 약어이지만 모바일 개발에서는 HTML5를 기반으로 한 프레임 워크를 참조 할 수 있습니다. 이러한 차이를 이해하면 프로젝트 에서이 용어를 정확하게 사용하는 데 도움이됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는