C# 使用url作为电子邮件附件的路径时出错:给定路径';不支持s格式

C# 使用url作为电子邮件附件的路径时出错:给定路径';不支持s格式,c#,C#,我的网络主机存储了一个PFD。我需要将此PDF作为附件发送。 我将attchment=设置为PDF的URL,并在VS 2017中运行代码,这给了我一个错误:不支持给定路径的格式。我尝试过用GetInvalidFileNameChars()修剪URL;和 GetInvalidPathChars());但经过修剪的URL返回时与原始URL完全相同。 生成错误的代码是: string MyPDF = "http://happylandings2018.com/free_ebook_ultimate_w

我的网络主机存储了一个PFD。我需要将此PDF作为附件发送。 我将attchment=设置为PDF的URL,并在VS 2017中运行代码,这给了我一个错误:不支持给定路径的格式。我尝试过用GetInvalidFileNameChars()修剪URL;和 GetInvalidPathChars());但经过修剪的URL返回时与原始URL完全相同。 生成错误的代码是:

string MyPDF = "http://happylandings2018.com/free_ebook_ultimate_weight_loss_bible.pdf";
Attachment attachment = new Attachment(MyPDF);

当我将MyPDF设置为系统上PDF的路径时,即c:/。。它很好用。我猜一定有一个简单的解决方案,但还没有找到任何有效的方法。谢谢你的回复

附件构造函数的参数可以是本地文件的路径,但不能是URL。这就是为什么当您将其设置为系统上的文件时,它会起作用

如果文件位于服务器上,则可以使用
server.Map()
函数将文件的URL转换为物理路径,然后将其传递到
Attachement()
。但是如果你想使用另一个网站上的文件,你必须先把它下载到你的服务器上。大概是这样的:

string MyPDF = "http://happylandings2018.com/free_ebook_ultimate_weight_loss_bible.pdf";
var stream = new WebClient().OpenRead(MyPDF);  
Attachment attachement = new Attachment(stream); 

附件不采用URL,而是采用本地文档的文件路径。这就是为什么会出现错误,正如文档中所说。这就是导致问题的代码,将MyPDF设置为URL-将附件设置为MyPDF。当我运行时,错误直接转到行:attachment=newattachment(MyPDF);