반응형
JavaScript에서 Blob을 파일로 변환하는 방법
NodeJS 서버의 일부 디렉토리에 이미지를 업로드해야합니다. 이를 connect-busboy
위해 노드 모듈을 사용하고 있습니다.
나는 있었다 dataURL
나는 다음과 같은 코드를 사용하여 블롭로 변환하는 이미지를 :
dataURLToBlob: function(dataURL) {
var BASE64_MARKER = ';base64,';
if (dataURL.indexOf(BASE64_MARKER) == -1) {
var parts = dataURL.split(',');
var contentType = parts[0].split(':')[1];
var raw = decodeURIComponent(parts[1]);
return new Blob([raw], {type: contentType});
}
var parts = dataURL.split(BASE64_MARKER);
var contentType = parts[0].split(':')[1];
var raw = window.atob(parts[1]);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);
for (var i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {type: contentType});
}
이미지를 업로드하려면 blob을 파일로 변환하는 방법이 필요합니다.
누군가 나를 도울 수 있습니까?
이 함수는 a Blob
를 a 로 변환하고 File
저에게 잘 작동합니다.
바닐라 자바 스크립트
function blobToFile(theBlob, fileName){
//A Blob() is almost a File() - it's just missing the two properties below which we will add
theBlob.lastModifiedDate = new Date();
theBlob.name = fileName;
return theBlob;
}
TypeScript (적절한 타이핑 포함)
public blobToFile = (theBlob: Blob, fileName:string): File => {
var b: any = theBlob;
//A Blob() is almost a File() - it's just missing the two properties below which we will add
b.lastModifiedDate = new Date();
b.name = fileName;
//Cast to a File() type
return <File>theBlob;
}
용법
var myBlob = new Blob();
//do stuff here to give the blob some data...
var myFile = blobToFile(myBlob, "my-image.png");
File 생성자를 사용할 수 있습니다.
var file = new File([myBlob], "name");
w3 사양에 따라 이것은 blob에 포함 된 바이트를 새 File 객체의 바이트에 추가하고 지정된 이름 http://www.w3.org/TR/FileAPI/#dfn-file로 파일을 만듭니다 .
Joshua P Nixon 의 대답은 정확하지만 마지막 수정 날짜도 설정해야했습니다. 그래서 여기에 코드가 있습니다.
var file = new File([blob], "file_name", {lastModified: 1534584790000});
1,534,584,790,000는 "의 유닉스 타임 스탬프입니다 : 2018년 8월 18일 (토요일) 그리니치 표준시 오전 9시 33분 10초 "
내 현대 변형 :
function blob2file(blobData) {
const fd = new FormData();
fd.set('a', blobData);
return fd.get('a');
}
FileSaver.js github 프로젝트 saveAs
에서 사용하십시오 .
FileSaver.js
saveAs()
기본적으로 지원하지 않는 브라우저 에서 FileSaver 인터페이스를 구현합니다 .
참고 URL : https://stackoverflow.com/questions/27159179/how-to-convert-blob-to-file-in-javascript
반응형
'Programing' 카테고리의 다른 글
자바 : 최대 공약수 얻기 (0) | 2020.10.11 |
---|---|
UICollectionView 애니메이션 데이터 변경 (0) | 2020.10.11 |
ProgressDialog Android 표시 (0) | 2020.10.11 |
Android ListView 스크롤 (0) | 2020.10.11 |
구분 기호에 따라 문자열을 문자열 배열로 분할 (0) | 2020.10.11 |