當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript storage.AngularFireStorage類代碼示例

本文整理匯總了TypeScript中@angular/fire/storage.AngularFireStorage的典型用法代碼示例。如果您正苦於以下問題:TypeScript AngularFireStorage類的具體用法?TypeScript AngularFireStorage怎麽用?TypeScript AngularFireStorage使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了AngularFireStorage類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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' });
        });
    }
開發者ID:jacobbowdoin,項目名稱:RapidWords,代碼行數:34,代碼來源:photo-upload.component.ts

示例2: onImageChange

  onImageChange(event:any) {
    const image = event.target.files[0];
    const uploader = document.getElementById('uploader') as HTMLInputElement;
    const storageRef = this.storage.ref('images/' + Date.now() + image.name);
    const task = storageRef.put(image);

    task.snapshotChanges().subscribe((snapshot) => {
        document.getElementById('buttonFile').style.visibility = 'hidden';
        document.getElementById('uploader').style.visibility = 'visible';

        const percentage = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
        uploader.value = percentage.toString();
      },
      (err:any) => {
        document.getElementById('buttonFile').style.visibility = 'visible';
        document.getElementById('uploader').style.visibility = 'hidden';
        uploader.value = '0';
      },
      () => {
        uploader.value = '0';
        document.getElementById('buttonFile').style.visibility = 'visible';
        document.getElementById('uploader').style.visibility = 'hidden';
        this.draftMessage = task.task.snapshot.ref.name.substring(0, 13);
        this.draftImage = task.task.snapshot.ref.name.substring(0, 13);
        storageRef.getDownloadURL().subscribe(url => {
          this.draftImageDownloadURL = url;
          this.addMessage();
          event.target.value = '';
        });
      });
  }
開發者ID:PERRINN,項目名稱:client-web,代碼行數:31,代碼來源:chat.component.ts

示例3: 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
  }
開發者ID:geeksmarter,項目名稱:andrews.codes,代碼行數:34,代碼來源:upload-page.component.ts

示例4: uploadImage

  async uploadImage(file) {
   const filePath = Date.now() + '.jpg';
   const ref = this.storage.ref('upload').child(filePath);
   const image = await ref.putString(file, 'data_url', {
     contentType: 'image/jpg'
   });
   const url = await this.getImageUrl(image);
   return url;
 }
開發者ID:niawjunior,項目名稱:blog,代碼行數:9,代碼來源:upload-content.service.ts

示例5: it

 it('should resolve the task as a promise', (done) => {
   const data = { angular: "promise" };
   const blob = new Blob([JSON.stringify(data)], { type : 'application/json' });
   const ref = afStorage.ref('af.json');
   const task: AngularFireUploadTask = ref.put(blob);
   task.then(snap => { 
     expect(snap).toBeDefined(); 
     done();
   }).catch(done.fail);
 });
開發者ID:PaulD11,項目名稱:angularfire2,代碼行數:10,代碼來源:storage.spec.ts


注:本文中的@angular/fire/storage.AngularFireStorage類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。