Loading...
Loading...
Compare original and translation side by side
ejs-uploaderejs-uploader@syncfusion/ej2-angular-inputs<ejs-uploader>@syncfusion/ej2-angular-inputs<ejs-uploader>multiplepostRawFileautoUploadsequentialUploadfilesmultiplepostRawFileautoUploadsequentialUploadfilesasyncSettings.chunkSizeretryCountretryAfterDelaychunkSuccesschunkFailureasyncSettings.chunkSizeretryCountretryAfterDelaychunkSuccesschunkFailureallowedExtensionsminFileSizemaxFileSizeselectedallowedExtensionsminFileSizemaxFileSizeselecteddirectoryUpload.e-upload-drag-hoverdirectoryUpload.e-upload-drag-hovertemplateshowFileListbuttonstemplateshowFileListbuttonsngModelFormGrouprequiredngModelFormGrouprequiredupload()customFormDataupload()customFormDataimport { Component } from '@angular/core';
import { UploaderModule } from '@syncfusion/ej2-angular-inputs';
@Component({
imports: [UploaderModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-uploader
[asyncSettings]="asyncSettings"
[autoUpload]="false"
(success)="onSuccess($event)"
(failure)="onFailure($event)">
</ejs-uploader>
`
})
export class AppComponent {
public asyncSettings = {
saveUrl: 'https://your-api/upload/save',
removeUrl: 'https://your-api/upload/remove'
};
onSuccess(args: any): void {
console.log('Upload operation:', args.operation, 'File:', args.file.name);
}
onFailure(args: any): void {
console.error('Upload failed:', args.file.name);
}
}styles.css@import 'node_modules/@syncfusion/ej2-base/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-buttons/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-inputs/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-popups/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-angular-inputs/styles/material3.css';import { Component } from '@angular/core';
import { UploaderModule } from '@syncfusion/ej2-angular-inputs';
@Component({
imports: [UploaderModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-uploader
[asyncSettings]="asyncSettings"
[autoUpload]="false"
(success)="onSuccess($event)"
(failure)="onFailure($event)">
</ejs-uploader>
`
})
export class AppComponent {
public asyncSettings = {
saveUrl: 'https://your-api/upload/save',
removeUrl: 'https://your-api/upload/remove'
};
onSuccess(args: any): void {
console.log('Upload operation:', args.operation, 'File:', args.file.name);
}
onFailure(args: any): void {
console.error('Upload failed:', args.file.name);
}
}styles.css@import 'node_modules/@syncfusion/ej2-base/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-buttons/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-inputs/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-popups/styles/material3.css';
@import 'node_modules/@syncfusion/ej2-angular-inputs/styles/material3.css';// Automatically uploads dropped or browsed files
<ejs-uploader
[asyncSettings]="asyncSettings"
[dropArea]="dropElement"
[multiple]="true"
(success)="onSuccess($event)">
</ejs-uploader>// 自动上传拖拽或浏览选择的文件
<ejs-uploader
[asyncSettings]="asyncSettings"
[dropArea]="dropElement"
[multiple]="true"
(success)="onSuccess($event)">
</ejs-uploader><ejs-uploader
[asyncSettings]="chunkSettings"
(chunkSuccess)="onChunkSuccess($event)"
(chunkFailure)="onChunkFailure($event)">
</ejs-uploader>
// In component:
chunkSettings = {
saveUrl: 'https://your-api/upload/save',
removeUrl: 'https://your-api/upload/remove',
chunkSize: 500000 // 500 KB chunks
};<ejs-uploader
[asyncSettings]="chunkSettings"
(chunkSuccess)="onChunkSuccess($event)"
(chunkFailure)="onChunkFailure($event)">
</ejs-uploader>
// 组件内代码:
chunkSettings = {
saveUrl: 'https://your-api/upload/save',
removeUrl: 'https://your-api/upload/remove',
chunkSize: 500000 // 500 KB分片
};<ejs-uploader
[asyncSettings]="asyncSettings"
allowedExtensions=".jpg,.png,.pdf"
[minFileSize]="1024"
[maxFileSize]="5000000">
</ejs-uploader><ejs-uploader
[asyncSettings]="asyncSettings"
allowedExtensions=".jpg,.png,.pdf"
[minFileSize]="1024"
[maxFileSize]="5000000">
</ejs-uploader><ejs-uploader
[asyncSettings]="asyncSettings"
[files]="preloadedFiles">
</ejs-uploader>
// In component:
preloadedFiles = [
{ name: 'report', size: 200000, type: '.pdf' },
{ name: 'photo', size: 500000, type: '.jpg' }
];<ejs-uploader
[asyncSettings]="asyncSettings"
[files]="preloadedFiles">
</ejs-uploader>
// 组件内代码:
preloadedFiles = [
{ name: 'report', size: 200000, type: '.pdf' },
{ name: 'photo', size: 500000, type: '.jpg' }
];<ejs-uploader
[asyncSettings]="asyncSettings"
(uploading)="addAuthHeader($event)"
(removing)="addAuthHeader($event)">
</ejs-uploader>
addAuthHeader(args: any): void {
args.currentRequest.setRequestHeader('Authorization', `Bearer ${this.token}`);
}<ejs-uploader
[asyncSettings]="asyncSettings"
(uploading)="addAuthHeader($event)"
(removing)="addAuthHeader($event)">
</ejs-uploader>
addAuthHeader(args: any): void {
args.currentRequest.setRequestHeader('Authorization', `Bearer ${this.token}`);
}| Property | Type | Default | Purpose |
|---|---|---|---|
| AsyncSettingsModel | | Server save/remove URLs and chunk config |
| boolean | | Upload immediately on file selection |
| boolean | | Allow selecting multiple files |
| string | | Comma-separated allowed extensions (e.g., |
| number | | Minimum file size in bytes |
| number | | Maximum file size in bytes (~28.6 MB) |
| FilesPropModel[] | | Preloaded files from server |
| string | HTMLElement | | Custom drop target element or selector |
| boolean | | Enable folder/directory upload |
| boolean | | Upload files one at a time |
| boolean | | Show/hide default file list |
| any | | Custom file list item template |
| ButtonsPropsModel | | Customize button text/HTML |
| boolean | | Enable or disable the component |
| string | | Additional CSS classes on root element |
| boolean | | Right-to-left rendering |
| boolean | | Prevent XSS in filenames |
| DropEffect | | Drag effect: Copy, Move, Link, None |
| 属性 | 类型 | 默认值 | 用途 |
|---|---|---|---|
| AsyncSettingsModel | | 服务器保存/删除URL及分片配置 |
| boolean | | 文件选择后立即上传 |
| boolean | | 允许选择多个文件 |
| string | | 逗号分隔的允许扩展名(例如: |
| number | | 最小文件大小(字节) |
| number | | 最大文件大小(字节,约28.6 MB) |
| FilesPropModel[] | | 从服务器预加载的文件 |
| string | HTMLElement | | 自定义拖拽目标元素或选择器 |
| boolean | | 启用文件夹/目录上传 |
| boolean | | 逐个上传文件 |
| boolean | | 显示/隐藏默认文件列表 |
| any | | 自定义文件列表项模板 |
| ButtonsPropsModel | | 自定义按钮文本/HTML |
| boolean | | 启用或禁用组件 |
| string | | 根元素上的额外CSS类 |
| boolean | | 从右到左渲染 |
| boolean | | 防止文件名中的XSS攻击 |
| DropEffect | | 拖拽效果:Copy、Move、Link、None |
| Event | When it Fires | Key Args |
|---|---|---|
| Files selected or dropped | |
| Before each file upload starts | |
| Upload or remove succeeds | |
| Upload or remove fails | |
| Upload progress | |
| Before file remove request | |
| Before remove confirmation | |
| Before upload process | |
| File list changes | |
| Before clear all action | |
| Each chunk uploads OK | |
| Each chunk fails | |
| Before each chunk upload | |
| Chunk upload paused | |
| Chunk upload resumed | |
| Upload canceled | |
| Before each file item renders | |
| All files processed | |
| Component initialized | — |
| 事件 | 触发时机 | 关键参数 |
|---|---|---|
| 文件被选择或拖拽时 | |
| 每个文件上传开始前 | |
| 上传或删除成功时 | |
| 上传或删除失败时 | |
| 上传进度更新时 | |
| 文件删除请求发送前 | |
| 删除确认前 | |
| 上传流程开始前 | |
| 文件列表变化时 | |
| 清空所有操作执行前 | |
| 每个分片上传成功时 | |
| 每个分片上传失败时 | |
| 每个分片上传开始前 | |
| 分片上传暂停时 | |
| 分片上传恢复时 | |
| 上传被取消时 | |
| 每个文件项渲染前 | |
| 所有文件处理完成时 | |
| 组件初始化完成时 | — |
| Method | Purpose |
|---|---|
| Programmatically start upload for selected or specific files |
| Remove a file from list or server |
| Cancel an in-progress chunk upload |
| Pause a chunk upload |
| Resume a paused chunk upload |
| Retry a failed or canceled upload |
| Clear all files from the list |
| Get file data array shown in the list |
| Programmatically create file list items |
| Sort file list alphabetically |
| Convert bytes to human-readable KB/MB string |
| Destroy the component and detach events |
| 方法 | 用途 |
|---|---|
| 以编程方式启动所选文件或特定文件的上传 |
| 从列表或服务器中删除文件 |
| 取消正在进行的分片上传 |
| 暂停分片上传 |
| 恢复暂停的分片上传 |
| 重试失败或取消的上传 |
| 清空列表中的所有文件 |
| 获取列表中显示的文件数据数组 |
| 以编程方式创建文件列表项 |
| 对文件列表按字母顺序排序 |
| 将字节转换为易读的KB/MB字符串 |
| 销毁组件并解绑事件 |
multiple="false"allowedExtensions=".jpg,.png,.gif,.webp"maxFileSize=5000000selectedallowedExtensions=".pdf,.doc,.docx,.xlsx"selecteduploadingcustomFormDataautoUpload=falsedata-required-messagemultiple="false"allowedExtensions=".jpg,.png,.gif,.webp"maxFileSize=5000000selectedallowedExtensions=".pdf,.doc,.docx,.xlsx"selecteduploadingcustomFormDataautoUpload=falsedata-required-message