首页 > 其他分享 >abp 文件下载

abp 文件下载

时间:2023-10-18 09:11:57浏览次数:28  
标签:文件 Task ITestFileService 接口 abp getDownloadUrl testFileService public 下载

Service

public interface ITestFileService : IApplicationService
{
    public Task<string> getDownloadUrl();
}
public class TestFileService : XXXManagementAppService, ITestFileService
{
    public Task<string> getDownloadUrl()
    {
        string url = "D:/Desktop/忽略.txt";
        return Task.FromResult(url);
    }
}

Controller

下面这个返回值File必须要在Controller里面,另外,由于该Controller实现了接口ITestFileService,必须实现Service中的方法,虽然开放了接口,但是基本上不使用这个接口。
另外,使用下载文件接口时,不能给下载文件接口添加[WrapResult]统一接口返回形式,如果这个Controller中有其他接口需要使用WrapResult,则单独给他们加,而不是直接加载Controller头上。

[Route("file")]
    public class TestFileController:XXXManagementController, ITestFileService
    {

        private readonly ITestFileService testFileService;

        public TestFileController(ITestFileService testFileService)
        {
            this.testFileService = testFileService;
        }

        [HttpGet("getfile")]
        [SwaggerOperation(summary: "下载文件", Tags = new[] { "下载文件" })]
        public async Task<FileResult> DownLoad(string fileName)
        {
            string filePath = await testFileService.getDownloadUrl();
            var stream = System.IO.File.OpenRead(filePath);
            string fileExt = Path.GetExtension(filePath);
            //获取文件的ContentType
            var provider = new FileExtensionContentTypeProvider();
            var memi = provider.Mappings[fileExt];

            return File(stream, memi, Path.GetFileName(filePath));
        }

        [HttpGet("getfilePath")]
        public async Task<string> getDownloadUrl()
        {
            return await testFileService.getDownloadUrl();
        }
    }

标签:文件,Task,ITestFileService,接口,abp,getDownloadUrl,testFileService,public,下载
From: https://www.cnblogs.com/kelvinxiong/p/17771238.html

相关文章

  • php文件限速下载示例代码
    <?php//将发送到客户端的本地文件$local_file='abc.zip';//文件名$download_file='your-download-name.zip';//设置下载速率(=>31.2kb/s)$download_rate=31.2;if(file_exists($local_file)&&is_file($local_file)){header('Cache-control:pr......
  • php一键打包压缩目录文件代码示例
    <?php$button=$_POST['button'];if($button=="开始打包"){$zip=newZipArchive();$filename="./".date("Y-m-d")."_".md5(time())."_zy.zip";if($zip->......
  • m基于FPGA的GFDM调制解调系统verilog实现,包含testbench仿真测试文件
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,测试结果如下:   GFDM调制信号放大:   GFDM解调信号放大:   系统RTL结构图如下:   2.算法涉及理论知识概要        随着通信技术的不断发展,人们对数据传输速率和频谱效率的要求越来越高。......
  • IO流,File类和文件字节输入流和输出流
    File类:首先,File类是Java自带的类,在IO包里。类里面定义了很多方法,可以对磁盘里面的文件或者目录(文件夹)进行操作常用的例如:文件的操作: 目录(文件夹)的操作: 文件字节输入流:FileInputStream 可以把我们磁盘里面的文件读取出来。文件字节输出流:FileOutStream 可以配合......
  • Python 当前工作路径、当前文件路径
    在BCP源码中,涉及到路径问题,先描述下问题,我运行的文件在BCP/code/LA_BCP_train.py,我希望在索引的时候使用的是BCP/code这个地址,但是实际上是BCP/,这里涉及Python的当前文件路径和当前工作路径。当前工作路径是BCP/,相对路径是基于这个路径,可以通过os.path.getcwd()获取当前文件路......
  • VSCode 设置文件显示和搜索过滤
    打开setting.json {"search.exclude":{"**/node_modules":true,"**/bower_components":true,"dist/":true,"build/":true,"temp/":true,......
  • C++ 获取文件信息(Linux)
    stat函数头文件:#include<sys/stat.h>intstat(constchar*restrictpathname,structstat*restrictbuf);第一个参数pathname:文件名,需要获取该文件的信息第二个参数buf:stat函数将pathname对应的文件信息,填入buf指向的stat结构中返回值:0成功;-1出错structstat{......
  • 苹果iOS系统iPad文件签名中的企业签名,超级签名和TF签名,如何选择?
    各位同学们好,今天的一天到啦,我咕噜铁蛋又出现啦!随着移动互联网的普及和智能设备的popularization,苹果iOS系统已经逐渐分布到我们生活的方方面面,对于广大的开发者而言,在开发合适的应用程序,提供优秀的用户体验的同时,关于不同文件签名的选择也成为了面临的一大技术难题。今天铁蛋......
  • 电影台词搜索下载
    找台词(通过台词找电影):https://zhaotaici.cn/index.html##字幕库(下载SRT): https://zimuku.org/detail/29849.html......
  • C语言-从键盘输入字符直到#结束,并将字符写入文件
    C语言-从键盘输入字符直到#结束,并将字符写入文件#include<stdio.h>#include<stdlib.h>intmain(){ FILE*fp=NULL; charfilename[25]; charch; printf("inputsavedfilename:\n"); gets(filename);//从键盘输入字符串,与scanf功能类似,其原型是char*gets(char*str)......