📜  Angular PrimeNG 文件上传组件

📅  最后修改于: 2022-05-13 01:56:33.804000             🧑  作者: Mango

Angular PrimeNG 文件上传组件

Angular PrimeNG 是一个开源框架,具有丰富的原生 Angular UI 组件集,可用于出色的样式,并且该框架用于非常轻松地制作响应式网站。在本文中,我们将了解如何在 Angular PrimeNG 中使用 FileUpload 组件。我们还将了解将在代码中使用的属性、事件、方法和样式以及它们的语法。

FileUpload 组件: 用于制作提供用户上传文件内容的元素。

特性:

  • name:请求参数的名称。它是字符串数据类型,默认值为空。
  • url:上传文件的url。它是字符串数据类型,默认值为空。
  • 方法:它指定用于发送的 HTTP 方法。它是字符串数据类型,默认值为post。
  • 多个:用于一次选择多个文件。它是布尔数据类型,默认值为false。
  • 接受:这是限制允许的文件类型的模式。它是字符串数据类型,默认值为false。
  • disabled:用于禁用上传功能。它是布尔数据类型,默认值为false。
  • auto:指定选择完成后是否自动开始上传。它是布尔数据类型,默认值为false。
  • maxFileSize:它是允许的最大文件大小(以字节为单位)。它是数字数据类型,默认值为空。
  • fileLimit:可以上传的最大文件数。它是数字数据类型,默认值为空。
  • invalidFileSizeMessageSummary:无效文件大小的摘要信息。它是字符串数据类型,默认值为{0}:文件大小无效。
  • invalidFileSizeMessageDetail:无效文件大小的详细信息。为字符串数据类型,默认值为“最大上传大小为{0}”。
  • invalidFileTypeMessageSummary:无效文件类型的摘要信息。它是字符串数据类型,默认值为“{0}:无效的文件类型,”。
  • invalidFileLimitMessageDetail:无效文件类型的详细信息。为字符串数据类型,默认值为“limit is {0} at most”。
  • invalidFileLimitMessageSummary:无效文件类型的摘要信息。它是字符串数据类型,默认值为“超过最大文件数”。
  • invalidFileTypeMessageDetail:无效文件类型的详细信息。它是字符串数据类型,默认值为“允许的文件类型:{0}”。
  • style:用于指定组件的内联样式。它是字符串数据类型,默认值为空。
  • styleClass:用于指定组件的样式类。它是字符串数据类型,默认值为空。
  • previewWidth:它是图像缩略图的宽度,以像素为单位。它是数字数据类型,默认值为 50。
  • chooseLabel:选择按钮的标签。它是字符串数据类型,默认值为空。
  • uploadLabel:上传按钮的标签。它是字符串数据类型,默认值为空。
  • cancelLabel:取消按钮的标签。它是字符串数据类型,默认值为空。
  • chooseIcon:选择按钮的图标。它是字符串数据类型,默认值为 pi pi-plus。
  • uploadIcon:上传按钮的图标。它是字符串数据类型,默认值为 pi pi-upload。
  • cancelIcon:取消按钮的图标。它是字符串数据类型,默认值为 pi pi-times。
  • mode:用于定义组件的UI。它是字符串数据类型,默认值是高级。
  • customUpload:用于定义是使用默认上传还是手动实现在uploadHandler回调中定义。它是布尔数据类型,默认值为false。
  • showUploadButton:用于定义上传按钮的可见性。它是布尔数据类型,默认值为true。
  • showCancelButton:用于定义取消按钮的可见性。它是布尔数据类型,默认值为true。
  • files:它是要在外部提供给 FileUpload 的文件列表。它是数组数据类型,默认值为空。
  • headers:它是 HttpHeaders 类,表示 header 配置选项。它是HttpHeader 数据类型,默认值为null。

事件:

  • onBeforeUpload :它是在文件上传初始化之前触发的回调。
  • onSend :它是在请求发送到服务器时触发的回调。
  • onUpload :这是一个在文件上传完成时触发的回调。
  • onError :这是一个在文件上传失败时触发的回调。
  • onClear :这是一个回调,当队列中的文件被删除而不使用全部清除按钮上传时触发。
  • onRemove :这是一个回调,当文件被删除而不使用文件的清除按钮上传时触发。
  • onSelect :它是在选择文件时触发的回调。
  • onProgress:这是一个在文件上传时触发的回调。
  • uploadHandler:在自定义上传模式下触发手动上传文件的回调。

方法:

  • upload :用于上传选中的文件。
  • clear :用于清除文件列表。

造型:

  • p-fileupload:它是容器元素。
  • p-fileupload-buttonbar:它是包含按钮的标题。
  • p-fileupload-content:它是内容部分。

创建 Angular 应用程序和模块安装:

  • 第 1 步:使用以下命令创建一个 Angular 应用程序。
ng new appname
  • 第 2 步:创建项目文件夹(即 appname)后,使用以下命令移动到该文件夹。
cd appname
  • 第 3 步:在给定目录中安装 PrimeNG。
npm install primeng --save
npm install primeicons --save

项目结构:它将如下所示:

示例 1:这是说明如何使用 FileUpload 组件的基本示例。

app.component.html

GeeksforGeeks

PrimeNG FileUpload Component


app.component.ts
import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {}


app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { BrowserAnimationsModule } 
    from "@angular/platform-browser/animations";
  
import { AppComponent } from "./app.component";
import { FileUploadModule } from "primeng/fileupload";
import { HttpClientModule } from "@angular/common/http";
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FileUploadModule,
    HttpClientModule,
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}


app.component.html

GeeksforGeeks

PrimeNG FileUpload Component


app.component.ts
import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {}


app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { BrowserAnimationsModule } 
    from "@angular/platform-browser/animations";
  
import { AppComponent } from "./app.component";
import { FileUploadModule } from "primeng/fileupload";
import { HttpClientModule } from "@angular/common/http";
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FileUploadModule,
    HttpClientModule,
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}


app.component.ts

import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {}

app.module.ts

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { BrowserAnimationsModule } 
    from "@angular/platform-browser/animations";
  
import { AppComponent } from "./app.component";
import { FileUploadModule } from "primeng/fileupload";
import { HttpClientModule } from "@angular/common/http";
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FileUploadModule,
    HttpClientModule,
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}

输出:

示例 2:在此示例中,我们将使用multiple属性制作一个仅接受多个文件和图像的上传元素。

app.component.html

GeeksforGeeks

PrimeNG FileUpload Component

app.component.ts

import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {}

app.module.ts

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { BrowserAnimationsModule } 
    from "@angular/platform-browser/animations";
  
import { AppComponent } from "./app.component";
import { FileUploadModule } from "primeng/fileupload";
import { HttpClientModule } from "@angular/common/http";
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FileUploadModule,
    HttpClientModule,
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}

输出:

参考: https://primefaces.org/primeng/showcase/#/fileupload