Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Asp.net mvc 使用asp.net mvc上载文件的附件中的空文件_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 使用asp.net mvc上载文件的附件中的空文件

Asp.net mvc 使用asp.net mvc上载文件的附件中的空文件,asp.net-mvc,Asp.net Mvc,我想发送一封带有附件的电子邮件,并从表单上传的文件中获取附件。电子邮件发送正确,但当我打开附件时,它总是一个空文件。控制器发送附件代码中是否有错误?文件中的数据似乎未保存,在发送时文件为空 型号: public class Mail{ public HttpPostedFileBase File { get; set; } } 视图: 控制器: public void ButtonClick(object sender, EventArgs e, Mail mail){ mai

我想发送一封带有附件的电子邮件,并从表单上传的文件中获取附件。电子邮件发送正确,但当我打开附件时,它总是一个空文件。控制器发送附件代码中是否有错误?文件中的数据似乎未保存,在发送时文件为空

型号:

public class Mail{
    public HttpPostedFileBase File { get; set; }
}
视图:

控制器:

public void ButtonClick(object sender, EventArgs e, Mail mail){
    mailMessage.Attachments.Add(new Attachment(mail.File.InputStream,mail.File.FileName));

}

您的代码中没有错误。一切都很好。事实上,无论何时,只要我们想在电子邮件中共享任何文件、图像或任何内容,请确保它可用于任何blob或云存储,并将其链接提供给您的电子邮件。
我们与电子邮件共享的文件,实际上这些文件只存在于我们的本地机器服务器上或您放置项目的位置,这并不意味着如果您将其放入电子邮件并共享。

尝试仅将文件名传递给附件构造函数。
通过HttpPostedFileBase文件,您应该能够获取文件名,并传递该值,然后查看它是否有效

我不完全理解您的意思。我使用了不同的代码从电脑的预定义路径中选择一个文件作为附件,它正确地发送了附件,我可以在邮件中打开它。但是使用此代码,我想从任何文件夹中选择文件,而不是预定义的文件夹,而是我在邮件附件中收到的文件具有正确的名称,但它是一个空文件。MVC中没有事件(您的
按钮单击
方法没有意义),这只是我代码的一部分。请参考基本问题。谢谢。基本问题??您甚至还没有显示表单发回的控制器方法!。你怎么能指望别人猜到你犯了什么错误!与邮件发送相关,我只设置了其他字段,如“收件人”、“主题”和“我的凭据”。邮件发送正确。不起作用的部分是附件。这是我写的唯一一行与附件相关的内容。它发送一个空文件,但具有正确的名称和扩展名。在我看来,在将文件发送到附件之前,我似乎没有以某种方式将其内容保存在某个地方。这是我的“基本问题”:(如果你有任何建议,请告诉我。谢谢。这样它甚至不发送任何附件,所以输入流必须作为第一个参数传递,然后文件名是第二个参数。我不明白的是为什么文件是空的。我是否应该将文件的值复制到某个地方?
public void ButtonClick(object sender, EventArgs e, Mail mail){
    mailMessage.Attachments.Add(new Attachment(mail.File.InputStream,mail.File.FileName));

}