PHP에서 Base64, Blob, File의 상호 변환 방법에 대해 이야기해 보겠습니다.
이 기사에서는 PHP에 대한 관련 지식을 제공합니다. 주로 Base64, Blob 및 File이 서로 변환되는 방법에 대해 설명합니다. 관심 있는 친구들은 아래를 살펴보시면 모두에게 도움이 되길 바랍니다.
서문
사진을 받다가 포맷을 변환해야 하는 상황이 생겨서 녹화해서 공유하게 되었습니다.
Text
1. 형식에 대한 기본 소개
Base64
Base64는 인터넷에서 8Bit 바이트코드를 전송하는 가장 일반적인 인코딩 방법 중 하나입니다. . 인쇄 가능한 문자로 이진 데이터를 나타내는 방법
예를 들어
- Blob
Blob
객체는 불변의 원본 데이터 파일을 나타냅니다. 객체 같은. 해당 데이터는 텍스트 또는 바이너리 형식으로 읽거나 데이터 작업을 위해 ReadableStream
으로 변환할 수 있습니다. Blob 문서 항목Blob
对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream
来用于数据操作。 Blob文档入口
举个例子
File
文件(File
)接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。 File文档入口
举个例子
就不过多介绍了,主要来讲如果转换。
二、如何判断这三种格式
1.判断是否为Base64字符串
// 判断是否为base64格式字符串 function isBase64(str) { //正则表达式判断 var reg = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i; return reg.test(str) //返回 true or false }
2.判断是否为Blob对象
console.log(data instanceof Blob) //ture or false
3.判断是否为File对象
console.log(data instanceof File && !data instanceof Blob) //ture or false
PS:
Blob和File都用instanceof来判断是否为对应类型数据
有一点需要注意,File对象也是Blob对象 ,因为File继承于Blob,所以其中的判断逻辑可以自己定义
三、格式之间的转换
1.Base64转换为File
function dataURLtoFile(dataurl, filename) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], filename, { type: mime }); }
- 需要传两个参数,第一个是数据,第二个是自定义文件名字符串
2.Base64转换为Blob
function dataURLtoBlob(dataurl, filename) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); }
- 和转
File
基本一样,就最后一句return
不一样
3.Blob转File
function blobToFile(blob) { return new File([blob], 'screenshot.png', { type: 'image/jpeg' }) }
这里和
Base64转File
其实用的都是new File()
예를 들어
File
🎜) 인터페이스는 파일에 대한 정보를 제공하고 웹 페이지의 JavaScript가 파일에 액세스할 수 있도록 허용합니다. 콘텐츠. 파일 문서 항목🎜🎜예를 들어🎜🎜🎜

2. 이 세 가지 형식을 판단하는 방법
🎜1. Base64 문자열인지 확인🎜rrreee🎜2. Blob 개체인지 확인합니다🎜rrreee🎜 3. 파일 객체인지 확인🎜rrreee🎜🎜PS:🎜Blob과 File 모두 해당 데이터 유형인지 확인하기 위해 instanceof를 사용합니다.
한 가지 주목할 점은 File 객체가 다음과 같다는 것입니다. File은 Blob에서 상속되므로 Blob 개체이므로 판단 논리를 직접 정의할 수 있습니다🎜🎜🎜3. 형식 간 변환🎜🎜🎜🎜1. Base64에서 File🎜🎜rrreee
- 🎜두 개의 매개변수를 전달해야 합니다. , 첫 번째는 데이터이고 두 번째는 사용자 정의 파일 이름 문자열 🎜🎜🎜🎜2입니다. Base64를 Blob 🎜🎜rrreee
- 🎜으로 변환하는 것은 마지막을 제외하면 기본적으로
파일
로 변환하는 것과 동일합니다. 문장 return
은 다릅니다🎜 🎜🎜🎜3. Blob to File🎜🎜rrreee- 🎜🎜여기와
Base64 to File
은 실제로 새 파일( )
메소드는 위의 메소드에 두 개의 매개변수가 전달됩니다. 여기서는 크게 중요하지 않은 매개변수로 메소드를 제공하므로 직접 사용할 수 있습니다. 🎜🎜🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜🎜위 내용은 PHP에서 Base64, Blob, File의 상호 변환 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Non-Blocking, Event-Driven 기반으로 구축된 Node 서비스는 메모리 소모가 적다는 장점이 있으며, 대규모 네트워크 요청을 처리하는데 매우 적합합니다. 대규모 요청을 전제로 '메모리 제어'와 관련된 문제를 고려해야 합니다. 1. V8의 가비지 수집 메커니즘과 메모리 제한 Js는 가비지 수집 기계에 의해 제어됩니다.

Vue.js는 오늘날 프런트엔드 개발에서 매우 인기 있는 프레임워크가 되었습니다. Vue.js가 계속 발전함에 따라 단위 테스트는 점점 더 중요해지고 있습니다. 오늘은 Vue.js 3에서 단위 테스트를 작성하는 방법을 살펴보고 몇 가지 모범 사례와 일반적인 문제 및 솔루션을 제공하겠습니다.

파일 모듈은 파일 읽기/쓰기/열기/닫기/삭제 추가 등과 같은 기본 파일 작업을 캡슐화한 것입니다. 파일 모듈의 가장 큰 특징은 모든 메소드가 **동기** 및 ** 두 가지 버전을 제공한다는 것입니다. 비동기**, sync 접미사가 있는 메서드는 모두 동기화 메서드이고, 없는 메서드는 모두 이기종 메서드입니다.

크로스 도메인은 개발 과정에서 자주 접하는 시나리오이며, 인터뷰에서도 자주 거론되는 문제이기도 합니다. 일반적인 크로스 도메인 솔루션과 그 뒤에 숨은 원칙을 익히면 개발 효율성이 향상될 뿐만 아니라 인터뷰에서도 더 나은 성과를 낼 수 있습니다.

PHP와 Vue: 프론트엔드 개발 도구의 완벽한 조합 오늘날 인터넷이 빠르게 발전하는 시대에 프론트엔드 개발은 점점 더 중요해지고 있습니다. 사용자가 웹 사이트 및 애플리케이션 경험에 대한 요구 사항이 점점 더 높아짐에 따라 프런트 엔드 개발자는 보다 효율적이고 유연한 도구를 사용하여 반응형 및 대화형 인터페이스를 만들어야 합니다. 프론트엔드 개발 분야의 두 가지 중요한 기술인 PHP와 Vue.js는 함께 사용하면 완벽한 도구라고 볼 수 있습니다. 이 기사에서는 독자가 이 두 가지를 더 잘 이해하고 적용할 수 있도록 PHP와 Vue의 조합과 자세한 코드 예제를 살펴보겠습니다.

프론트엔드 개발 인터뷰에서 일반적인 질문은 HTML/CSS 기초, JavaScript 기초, 프레임워크 및 라이브러리, 프로젝트 경험, 알고리즘 및 데이터 구조, 성능 최적화, 크로스 도메인 요청, 프론트엔드 엔지니어링, 디자인 패턴, 새로운 기술 및 트렌드. 면접관 질문은 후보자의 기술적 능력, 프로젝트 경험, 업계 동향에 대한 이해를 평가하기 위해 고안되었습니다. 따라서 지원자는 자신의 능력과 전문성을 입증할 수 있도록 해당 분야에 대한 충분한 준비를 갖추어야 합니다.

초기에 JS는 브라우저 측에서만 실행되었습니다. 유니코드로 인코딩된 문자열은 처리하기 쉬웠지만 바이너리 및 유니코드가 아닌 인코딩된 문자열을 처리하는 것은 어려웠습니다. 그리고 바이너리는 컴퓨터의 가장 낮은 데이터 형식인 비디오/오디오/프로그램/네트워크 패키지입니다.

인터넷 기술이 발전하면서 프론트엔드 개발이 점점 더 중요해지고 있습니다. 특히 모바일 장치의 인기는 효율적이고 안정적이며 안전하고 유지 관리가 쉬운 프런트 엔드 개발 기술을 요구합니다. 빠르게 발전하는 프로그래밍 언어로서 Go 언어는 점점 더 많은 개발자가 사용하고 있습니다. 그렇다면 프론트엔드 개발에 Go 언어를 사용하는 것이 가능할까요? 다음으로 이 글에서는 프론트엔드 개발에 Go 언어를 사용하는 방법을 자세히 설명하겠습니다. 먼저 프론트엔드 개발에 Go 언어가 사용되는 이유를 살펴보겠습니다. 많은 사람들이 Go 언어가 언어라고 생각합니다.
