Saya perlu mengunggah gambar ke server NodeJS ke beberapa direktori. Saya menggunakan connect-busboy
modul node untuk itu.
Saya memiliki dataURL
gambar yang saya ubah menjadi blob menggunakan kode berikut:
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});
}
Saya memerlukan cara untuk mengonversi gumpalan menjadi file untuk mengunggah gambar.
Bisakah seseorang membantu saya dengan itu?
javascript
node.js
file-upload
blob
melewatkan
sumber
sumber
blob
. Jadi, saya ekstrak dulu nama file yang saya cropping lalu berikan yang samafilename
sehingga file yang di-crop sambil menguploadnya ke server dengan melakukanform.append("blob",blob, filename);
.Jawaban:
Fungsi ini mengubah a
Blob
menjadi aFile
dan berfungsi dengan baik untuk saya.Vanilla JavaScript
TypeScript (dengan pengetikan yang benar)
Pemakaian
sumber
any
TypeScript. Lihat contoh ini .b.__proto__ = File.prototype
, dan solusi Anda menjadi mimpi yang bahkan trikb instanceOf File
untuktrue
Anda dapat menggunakan konstruktor File:
Sesuai spesifikasi w3, ini akan menambahkan byte yang berisi blob ke byte untuk objek File baru, dan membuat file dengan nama yang ditentukan http://www.w3.org/TR/FileAPI/#dfn-file
sumber
TypeError: FileConstructor is not a constructor (evaluating 'new File([''], 'file.pdf', {'size': 1000, 'type': 'application/pdf'})')
Jawaban Joshua P Nixon benar tetapi saya juga harus menyetel tanggal modifikasi terakhir. jadi ini kodenya.
1534584790000 adalah stempel waktu unix untuk " GMT: Sabtu, 18 Agustus, 2018 9:33:10 "
sumber
instanceof
seperti jawaban yang diterimaBagi saya untuk bekerja, saya harus secara eksplisit memberikan jenisnya meskipun itu terkandung dalam blob dengan melakukannya:
sumber
Varian modern saya :
sumber
fd.set('a', blobData, 'filename')
fd.set
Gunakan
saveAs
pada proyek github FileSaver.js .FileSaver.js
mengimplementasikansaveAs()
antarmuka FileSaver di browser yang tidak mendukungnya.sumber
Ketikan
Javascript
Keluaran
sumber