41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
# IFileService
|
|
|
|
The `IFileService` interface provides methods for handling file operations, such as downloading and uploading files within the HopFrame web application. It abstracts file-related operations to ensure a smooth and consistent user experience.
|
|
|
|
## Methods
|
|
|
|
1. **DownloadFile**
|
|
- Initiates the download of a file with the given name and data.
|
|
- Suitable for dynamically generating and offering files to the user, such as CSV exports or reports.
|
|
|
|
```c#
|
|
Task DownloadFile(string name, byte[] data);
|
|
```
|
|
|
|
- **Parameters:**
|
|
- `name`: The name of the file to be downloaded (including the extension, e.g., "example.csv").
|
|
- `data`: The byte array representing the content of the file.
|
|
- **Usage Example:** Exporting table data as a CSV file for download.
|
|
|
|
2. **UploadFile**
|
|
- Allows the user to upload a file through the web interface and returns the uploaded file for further processing.
|
|
- This method provides integration with Blazor's `IBrowserFile` for easy file handling.
|
|
|
|
```c#
|
|
Task<IBrowserFile> UploadFile();
|
|
```
|
|
|
|
- **Returns:** An `IBrowserFile` instance representing the uploaded file.
|
|
- **Usage Example:** Importing data from a CSV file to populate or update a table.
|
|
|
|
## Integration
|
|
|
|
The `IFileService` is commonly used in conjunction with plugins or components that require file operations, such as the Exporter Plugin, which leverages this service to enable data export and import functionality.
|
|
|
|
## Key Features
|
|
|
|
- Streamlines file handling for web applications.
|
|
- Simplifies both download and upload processes with minimal code.
|
|
- Ensures compatibility with Blazor's file-handling capabilities.
|
|
|
|
By implementing or extending the `IFileService`, developers can customize the file-handling behavior to suit specific application needs. Let me know if you'd like more examples or details! |