本文整理汇总了TypeScript中@angular/fire/storage.AngularFireStorage.upload方法的典型用法代码示例。如果您正苦于以下问题:TypeScript AngularFireStorage.upload方法的具体用法?TypeScript AngularFireStorage.upload怎么用?TypeScript AngularFireStorage.upload使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@angular/fire/storage.AngularFireStorage
的用法示例。
在下文中一共展示了AngularFireStorage.upload方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: startUpload
async startUpload(event: FileList) {
const file = event.item(0);
// Client-side validation: Must be an image and smaller than 10MB.
if (file.type.split('/')[0] !== 'image') {
return this.snackBar.open('Unsupported File Type', '', { duration: 3000, panelClass: 'snackbar-error' });
}
// Must be smaller than 20MB, http://www.unitconversion.org/data-storage/megabytes-to-bytes-conversion.html
if (file.size > 10485760) {
return this.snackBar.open('Images must be smaller than 10MB', '', { duration: 5000, panelClass: 'snackbar-error' });
}
const dictionary = await this.dictionariesService.getDictionary();
// Replace spaces w/ underscores in dict name, remove special characters from lexeme so image converter can accept filename
const _dictName = dictionary.name.replace(/\s+/g, '_');
const _lexeme = this.entry.lx.replace(/[^a-z0-9+]+/gi, '_');
const fileTypeSuffix = file.name.match(/\.[0-9a-z]+$/i)[0];
const path = `images/${_dictName}_${dictionary.id}/${_lexeme}_${this.entry.id}_${new Date().getTime()}${fileTypeSuffix}`;
// optional metadata
const { displayName, uid } = await this.auth.getUser();
const customMetadata = { uploadedBy: displayName };
this.task = this.storage.upload(path, file, { customMetadata });
this.percentage = this.task.percentageChanges();
this.task.then(snap => {
if (snap.state === 'success') { this.savePhoto(path, displayName, uid, this.entry.lx, dictionary.id); }
}).catch(() => {
this.snackBar.open('Image Upload Failed', '', { duration: 3000, panelClass: 'snackbar-error' });
});
}
示例2: startUpload
startUpload(event: FileList) {
// The File object
const file = event.item(0);
// Client-side validation example
if (file.type.split('/')[0] !== 'image') {
console.error('unsupported file type :( ');
return;
}
// The storage path
const path = `test/${new Date().getTime()}_${file.name}`;
// Totally optional metadata
const customMetadata = { app: 'My AngularFire-powered PWA!' };
// The main task
this.task = this.storage.upload(path, file, { customMetadata });
// Progress monitoring
this.percentage = this.task.percentageChanges();
this.snapshot = this.task.snapshotChanges().pipe(
tap(snap => {
if (snap.bytesTransferred === snap.totalBytes) {
// Update firestore on completion
this.db.collection('photos').add({ path, size: snap.totalBytes });
}
}),
finalize(() => this.downloadURL = this.storage.ref(path).getDownloadURL() )
);
// The file's download URL
}
示例3: tareaCloudStorage
//Tarea para subir archivo
public tareaCloudStorage(nombreArchivo: string, datos: any) {
return this.storage.upload(nombreArchivo, datos);
}