Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从Controller中的文件夹下载PDF [路由(“pdfdownload”)] [HttpGet] 公共IHttpActionResult Getpdfdownload(字符串参数) { HttpResponse Response=HttpContext.Current.Response; 字符串PdfFileName=参数; 字符串路径=ConfigurationManager.AppSettings[“SISource”].ToString()+“\\”+PdfielName; var-dataBytes=File.ReadAllBytes(路径); var数据流=新的内存流(数据字节); 返回新的GetPDFDownload(dataStream、Request、PdfFileName); } 公共类GetPDFDownload:IHttpActionResult { 记忆流凝灰岩; 字符串PdfFileName; HttpRequestMessage HttpRequestMessage; HttpResponseMessage HttpResponseMessage; 公共GetPDFDownload(MemoryStream数据、HttpRequestMessage请求、字符串文件名) { bookStuff=数据; httpRequestMessage=请求; PdfFileName=文件名; } 公共系统.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken CancellationToken) { httpResponseMessage=httpRequestMessage.CreateResponse(HttpStatusCode.OK); httpResponseMessage.Content=新的StreamContent(bookStuff); httpResponseMessage.Content.Headers.ContentDisposition=新建 System.Net.Http.Headers.ContentDispositionHeaderValue(“附件”); httpResponseMessage.Content.Headers.ContentDisposition.FileName=PdfielName; httpResponseMessage.Content.Headers.ContentType=新建 System.Net.Http.Headers.MediaTypeHeaderValue(“应用程序/pdf”); 返回System.Threading.Tasks.Task.FromResult(httpResponseMessage); } }_C#_Asp.net Web Api - Fatal编程技术网

C# 如何从Controller中的文件夹下载PDF [路由(“pdfdownload”)] [HttpGet] 公共IHttpActionResult Getpdfdownload(字符串参数) { HttpResponse Response=HttpContext.Current.Response; 字符串PdfFileName=参数; 字符串路径=ConfigurationManager.AppSettings[“SISource”].ToString()+“\\”+PdfielName; var-dataBytes=File.ReadAllBytes(路径); var数据流=新的内存流(数据字节); 返回新的GetPDFDownload(dataStream、Request、PdfFileName); } 公共类GetPDFDownload:IHttpActionResult { 记忆流凝灰岩; 字符串PdfFileName; HttpRequestMessage HttpRequestMessage; HttpResponseMessage HttpResponseMessage; 公共GetPDFDownload(MemoryStream数据、HttpRequestMessage请求、字符串文件名) { bookStuff=数据; httpRequestMessage=请求; PdfFileName=文件名; } 公共系统.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken CancellationToken) { httpResponseMessage=httpRequestMessage.CreateResponse(HttpStatusCode.OK); httpResponseMessage.Content=新的StreamContent(bookStuff); httpResponseMessage.Content.Headers.ContentDisposition=新建 System.Net.Http.Headers.ContentDispositionHeaderValue(“附件”); httpResponseMessage.Content.Headers.ContentDisposition.FileName=PdfielName; httpResponseMessage.Content.Headers.ContentType=新建 System.Net.Http.Headers.MediaTypeHeaderValue(“应用程序/pdf”); 返回System.Threading.Tasks.Task.FromResult(httpResponseMessage); } }

C# 如何从Controller中的文件夹下载PDF [路由(“pdfdownload”)] [HttpGet] 公共IHttpActionResult Getpdfdownload(字符串参数) { HttpResponse Response=HttpContext.Current.Response; 字符串PdfFileName=参数; 字符串路径=ConfigurationManager.AppSettings[“SISource”].ToString()+“\\”+PdfielName; var-dataBytes=File.ReadAllBytes(路径); var数据流=新的内存流(数据字节); 返回新的GetPDFDownload(dataStream、Request、PdfFileName); } 公共类GetPDFDownload:IHttpActionResult { 记忆流凝灰岩; 字符串PdfFileName; HttpRequestMessage HttpRequestMessage; HttpResponseMessage HttpResponseMessage; 公共GetPDFDownload(MemoryStream数据、HttpRequestMessage请求、字符串文件名) { bookStuff=数据; httpRequestMessage=请求; PdfFileName=文件名; } 公共系统.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken CancellationToken) { httpResponseMessage=httpRequestMessage.CreateResponse(HttpStatusCode.OK); httpResponseMessage.Content=新的StreamContent(bookStuff); httpResponseMessage.Content.Headers.ContentDisposition=新建 System.Net.Http.Headers.ContentDispositionHeaderValue(“附件”); httpResponseMessage.Content.Headers.ContentDisposition.FileName=PdfielName; httpResponseMessage.Content.Headers.ContentType=新建 System.Net.Http.Headers.MediaTypeHeaderValue(“应用程序/pdf”); 返回System.Threading.Tasks.Task.FromResult(httpResponseMessage); } },c#,asp.net-web-api,C#,Asp.net Web Api,要下载任何文件,可以使用以下代码段。它很短也很简单。您可以自定义一点并使用它 [Route("pdfdownload")] [HttpGet] public IHttpActionResult Getpdfdownload(string parameter) { HttpResponse Response = HttpContext.Current.Response; string PdfFileName = parameter; string path = Configu

要下载任何文件,可以使用以下代码段。它很短也很简单。您可以自定义一点并使用它

[Route("pdfdownload")]
[HttpGet]
public IHttpActionResult Getpdfdownload(string parameter)
{
   HttpResponse Response = HttpContext.Current.Response;

   string PdfFileName = parameter;

   string path = ConfigurationManager.AppSettings["SISource"].ToString() + "\\" + PdfFileName; 

   var dataBytes = File.ReadAllBytes(path);

   var dataStream = new MemoryStream(dataBytes);

   return new GetPDFDownload(dataStream, Request, PdfFileName);

}


public class GetPDFDownload : IHttpActionResult
{
     MemoryStream bookStuff;
 string PdfFileName;

 HttpRequestMessage httpRequestMessage;

 HttpResponseMessage httpResponseMessage;



public GetPDFDownload(MemoryStream data, HttpRequestMessage request, string filename)
{
   bookStuff = data;

   httpRequestMessage = request;

   PdfFileName = filename;
}

public System.Threading.Tasks.Task<HttpResponseMessage> 

ExecuteAsync(System.Threading.CancellationToken cancellationToken)
{

    httpResponseMessage = httpRequestMessage.CreateResponse(HttpStatusCode.OK);

    httpResponseMessage.Content = new StreamContent(bookStuff);

    httpResponseMessage.Content.Headers.ContentDisposition = new 

    System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");

    httpResponseMessage.Content.Headers.ContentDisposition.FileName = PdfFileName;

    httpResponseMessage.Content.Headers.ContentType = new 

    System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");


    return System.Threading.Tasks.Task.FromResult(httpResponseMessage);

  }
}
或者你可以这样做:

    //Route: http://localhost:56928/api/values/parameter=asdasd
    [HttpGet]
    public IActionResult Get(string parameter)
    {
        var path = @"D:\Work\"+parameter;
        var fileName = System.IO.Path.GetFileName(path);
        FileContentResult result = new FileContentResult(System.IO.File.ReadAllBytes(path), "application/octet-stream")
        {
            FileDownloadName = fileName
        };
        return result;
    }

FileContentResult有问题请您解释一下FileContentResult继承自ActionResult,因此它应该可以正常工作。您到底面临什么问题?IActionResult不适用于我,因此我将其更改为IHttpActionResult,因为FileContentResult表示缺少程序集引用。请给出任何示例,然后您应该返回HttpResponseMessage,而不是HttpPactionResult
public HttpResponseMessage Get(){var path=@“D:\Work\Tryouts\split.txt”;HttpResponseMessage结果=新建HttpResponseMessage(HttpStatusCode.OK);var stream=新建文件流(path,FileMode.Open,FileAccess.Read);result.Content=new StreamContent(stream);result.Content.Headers.ContentType=new MediaTypeHeaderValue(“应用程序/八位字节流”);返回结果;}
    public HttpResponseMessage Get()
    {
        var path = @"D:\Work\Tryouts\split.txt";
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        var stream = new FileStream(path, FileMode.Open, FileAccess.Read);
        result.Content = new StreamContent(stream);
        result.Content.Headers.ContentType =
            new MediaTypeHeaderValue("application/octet-stream");
        return result;
    }