Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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# 读取Azure函数中包含pdf的请求正文时出错_C#_Http_Blob_Azure Functions - Fatal编程技术网

C# 读取Azure函数中包含pdf的请求正文时出错

C# 读取Azure函数中包含pdf的请求正文时出错,c#,http,blob,azure-functions,C#,Http,Blob,Azure Functions,我有一个带有blob触发器的azure函数,我想在逻辑应用程序中使用它。然后我意识到在逻辑应用程序中只支持HTTP触发器azure函数 我将blob触发函数中正常工作的代码迁移到一个新的http触发azure函数中。我将请求主体的blob触发函数中接收到的流替换为http触发的流,但是我无法打开用该流创建的pdf 水滴触发功能 public static void Run([BlobTrigger("attachments/{name}", Connection = "")]Stream blo

我有一个带有blob触发器的azure函数,我想在逻辑应用程序中使用它。然后我意识到在逻辑应用程序中只支持HTTP触发器azure函数

我将blob触发函数中正常工作的代码迁移到一个新的http触发azure函数中。我将请求主体的blob触发函数中接收到的流替换为http触发的流,但是我无法打开用该流创建的pdf

水滴触发功能

public static void Run([BlobTrigger("attachments/{name}", Connection = "")]Stream blobPdf, string name, ILogger log)
{
    // Create MemoryStream
    var streamPdf = new MemoryStream();
    CopyStream(blobPdf, streamPdf);
    // Create PDF from MemoryStream
    var pdf = PdfReader.Open(streamPdf);
}
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
        // Create MemoryStream
        var streamPdf = new MemoryStream();
        CopyStream(req.Body, streamPdf);
        // Create PDF from MemoryStream
        var pdf = PdfReader.Open(streamPdf);
}
HTTP触发功能

public static void Run([BlobTrigger("attachments/{name}", Connection = "")]Stream blobPdf, string name, ILogger log)
{
    // Create MemoryStream
    var streamPdf = new MemoryStream();
    CopyStream(blobPdf, streamPdf);
    // Create PDF from MemoryStream
    var pdf = PdfReader.Open(streamPdf);
}
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
        // Create MemoryStream
        var streamPdf = new MemoryStream();
        CopyStream(req.Body, streamPdf);
        // Create PDF from MemoryStream
        var pdf = PdfReader.Open(streamPdf);
}
第二个是:

System.Private.CoreLib: Exception while executing function: ExtractTextFromPDF. PdfSharp: Unexpected token 'n' in PDF stream. The file may be corrupted. If you think this is a bug in PDFsharp, please send us your PDF file.

问题是如何在邮递员中提交pdf<代码>二进制而不是
表单数据
解决了问题。

问题在于如何在邮递员中提交pdf<代码>二进制而不是
表单数据
解决了这个问题。

您能检查一下调用的HttpRequest中的内容类型吗?此外,可以通过
ReadAsStreamAsync
方法将HttpRequest的内容读取为流。
HttpRequest请求
内容类型为
multipart/form数据;boundary=------------------------------------7051294976557513365472
此外,我不能使用
ReadAsStreamAsync
。我需要一个库或什么的吗?你得到了什么错误?实际上,我尝试了二进制而不是表单数据,并且成功了。感谢您指出错误可能在我提交的方式中。我做完后会发布答案吗?请检查调用的HttpRequest中的内容类型是什么?此外,可以通过
ReadAsStreamAsync
方法将HttpRequest的内容读取为流。
HttpRequest请求
内容类型为
multipart/form数据;boundary=------------------------------------7051294976557513365472
此外,我不能使用
ReadAsStreamAsync
。我需要一个库或什么的吗?你得到了什么错误?实际上,我尝试了二进制而不是表单数据,并且成功了。感谢您指出错误可能在我提交的方式中。我做完后会发布答案吗