C# 读取Azure函数中包含pdf的请求正文时出错
我有一个带有blob触发器的azure函数,我想在逻辑应用程序中使用它。然后我意识到在逻辑应用程序中只支持HTTP触发器azure函数 我将blob触发函数中正常工作的代码迁移到一个新的http触发azure函数中。我将请求主体的blob触发函数中接收到的流替换为http触发的流,但是我无法打开用该流创建的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
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
。我需要一个库或什么的吗?你得到了什么错误?实际上,我尝试了二进制而不是表单数据,并且成功了。感谢您指出错误可能在我提交的方式中。我做完后会发布答案吗