如何修复FileUpload上的InputStream ReadTimeout错误

马努

我的设置:asp.net mvc Web应用程序,带有带有fileUpload和send按钮的简单电子邮件表单。

电子邮件已正确发送,并且已附加文件-但附件为空调试控制器将在表达式中提供InputStream.ReadTimeoutvar myFiles = model.MyFiles;(请参见下面的控制器代码)。

型号(仅零件)

public List<HttpPostedFileBase> MyFiles { get; set; }
public List<EmailAttachments> Attachments { get; set; }

的HTML

<form id="data" method="post" enctype="multipart/form-data">
    <input id="files" type="file" aria-label="files" multiple="multiple" name="MyFiles">
</form>

<input type="button" class="btn k-button k-primary" id="send" value="Send" />

Java脚本

 $(function () {

    $("#send").click(function () {
         var form = $("#data");
         var formData = new FormData(form[0]);

         var files = form.find("#files")[0].files;

         $.each(files, function() {
           var file = $(this);
           formData.append(file[0].name, file[0]);
         });

         $.ajax({
             type: "POST",
             url: url,
             data: formData,
             contentType: false,
             processData: false,
             success: function (response) {
                 alert("Success");
             },
             error: function (response) {
                 alert("Error");
             }
         });

    });

控制者

[HttpPost]
public ActionResult SendCompanyEmail(GeneralEmailViewModel model)
{
    ...
    var myFiles = model.MyFiles; // here occurs the ReadTimeout
    if (myFiles != null)
    {
        foreach (var file in myFiles)
        {
            if (file != null && file.ContentLength > 0)
            {
                MemoryStream stream = new MemoryStream(file.ContentLength);
                stream.Position = 0;
                attachements.Add(new EmailAttachments
                {
                    FileName = file.FileName,
                    ContentType = file.ContentType,
                    Stream = stream,
                });
            }
        }
    }
// ... code for sending the email ...
}

有什么建议可能引起ReadTimeout的原因以及如何解决?

马努

用于构建附件的控制器代码错误。我找到了一个工作代码:

    if (myFiles != null)
    {
        foreach (var file in myFiles)
        {
            if (file != null && file.ContentLength > 0)
            {
                //MemoryStream stream = new MemoryStream(file.ContentLength);
                //stream.Position = 0;
                attachements.Add(new EmailAttachments
                {
                    FileName = file.FileName,
                    ContentType = file.ContentType,
                    Stream = file.InputStream
                });

            }
        }
    }

所述InputStream.ReadTimeout仍然可以在调试控制器时,可以读出的消息。我想不通这是否只是毫无意义的徒劳信息。

无论如何,在我的原始帖子中概述的方法以及上面给出的更正可以正确地用于上传文件并将其转换为电子邮件附件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

登录时Selenium ReadTimeout错误

如何修复Server 2016上的定位错误?

如何修复Postgres安装Ubuntu上的错误

如何修复C ++上的分段错误

如何修复xtext上的简单错误?

如何修复 shell 脚本上的 JSON 错误?

Watir脚本偶尔返回Net :: ReadTimeout错误

如何为 JPA 连接设置 ReadTimeout

如何修复IIS上的ASP.Net Core 404错误?

如何修复错误:frida 上的 java.lang.ClassNotFoundException

在 Django 上配置 saml 时如何修复错误?

如何修复 OSX 上的 tensorflow protobuf 编译错误?

如何通过Safari上的moment.js修复解析错误?

如何修复Java中MediaWiki-API上的“ readapidenied”错误

如何修复 python3 上 pip 的错误升级

如何在Ubuntu 15上修复libudev的链接器错误

如何在Spring Boot上修复“错误401未经授权”

如何修复“DriverManager.getConnection(connectionURL, UN, PW);”上的错误?

如何在 Mac 上修复 rsync 的 @ERROR: chdir failed 错误

如何修复Raspberry Pi 4上的exec格式错误

如何在iOS上修复Ironsource Unity SDK中的错误

如何在启动板上提交错误修复?

如何修复 PhoneGap Build 上的 SWIFT_VERSION 错误

如何修复YAML文件上的“循环引用”错误?

如何修复Google Apps脚本上的授权错误?

如何修复 d3.forceLink 上的“错误:缺失:0”

如何修复在 Xcode 上找不到库的错误

如何修复多个命令在 Xcode (11.4) 上产生错误

如何修复函数原型上的“不是函数”错误?