찾다
웹 프론트엔드H5 튜토리얼H5의 파일 업로드에 대한 자세한 소개

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 18, 2025 am 12:06 AM

HTML5 코드는 태그, 요소 및 속성으로 구성됩니다. 1. 태그는 컨텐츠 유형을 정의하고 다음과 같은 각도 브래킷으로 둘러싸여 있습니다. 2. 요소는 컨텐츠와 같은 시작 태그, 내용 및 엔드 태그로 구성됩니다. 3. 속성 시작 태그에서 키 값 쌍을 정의하고 기능을 향상시킵니다. 웹 구조를 구축하기위한 기본 단위입니다.

H5 코드 이해 : HTML5의 기본 사항H5 코드 이해 : HTML5의 기본 사항Apr 17, 2025 am 12:08 AM

HTML5는 현대적인 웹 페이지를 구축하는 핵심 기술로 많은 새로운 요소와 기능을 제공합니다. 1. HTML5는 웹 페이지 구조 및 SEO를 향상시키는 의미 론적 요소를 소개합니다. 2. 멀티미디어 요소를 지원하고 플러그인없이 미디어를 포함시킵니다. 3. 양식은 새로운 입력 유형 및 검증 속성을 향상시켜 검증 프로세스를 단순화합니다. 4. 웹 페이지 성능 및 사용자 경험을 향상시키기 위해 오프라인 및 로컬 스토리지 기능을 제공합니다.

H5 코드 : 웹 개발자를위한 모범 사례H5 코드 : 웹 개발자를위한 모범 사례Apr 16, 2025 am 12:14 AM

H5 코드에 대한 모범 사례는 다음과 같습니다. 1. 올바른 문서 선언 및 문자 인코딩 사용; 2. 시맨틱 태그를 사용하십시오. 3. HTTP 요청을 줄입니다. 4. 비동기 부하 사용; 5. 이미지 최적화. 이러한 관행은 웹 페이지의 효율성, 유지 관리 및 사용자 경험을 향상시킬 수 있습니다.

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은 모듈 포장에 사용되며 리소스로드를 최적화합니다.

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를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

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

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전