Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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
Javascript 从前端到后端发送文件花费的时间太长_Javascript_C# - Fatal编程技术网

Javascript 从前端到后端发送文件花费的时间太长

Javascript 从前端到后端发送文件花费的时间太长,javascript,c#,Javascript,C#,我目前正在构建一个web应用程序,它接收用户使用Javascript上传的excel文件,将其发送到使用C的后端,并在返回答案之前搜索特定字段。到目前为止,我的代码对于小文件似乎工作得很好,但是用户提供的每个文件大约4MB。当我上传一个如此大小的文件并使用断点跟踪代码时,我意识到它甚至没有到达C代码,连接似乎失败了,我相信这是因为传递文件花费的时间太长了 以下是我的javascript代码的一部分: document.getElementById'selectedFile'.addEventLi

我目前正在构建一个web应用程序,它接收用户使用Javascript上传的excel文件,将其发送到使用C的后端,并在返回答案之前搜索特定字段。到目前为止,我的代码对于小文件似乎工作得很好,但是用户提供的每个文件大约4MB。当我上传一个如此大小的文件并使用断点跟踪代码时,我意识到它甚至没有到达C代码,连接似乎失败了,我相信这是因为传递文件花费的时间太长了

以下是我的javascript代码的一部分:

document.getElementById'selectedFile'.addEventListener'change',函数事件{ var reader=新文件读取器; reader.onload=函数{ filename=event.target.files[0]。name; fileContent=btoanewtextdecker'utf-8'。解码新的Uint8Arraythis.result; console.logfileContent; } reader.readAsArrayBufferthis.files[0]; }, $btnRunReport.onclick, 作用{ if!validateFilename{ 请上传一个扩展名为.xlsx的EXCEL文件; 回来 } var-request=runReportRequest; 授权和执行EAJAXRequestRequest请求; } ; 函数runReportRequest{ 切换运行按钮; $textAreaRow.show; var-token=getUserToken; RunMT4ConfigHub.invokeRunReport、令牌、文件名、文件内容; }
在发送更大的文件之前,所有这些代码都可以正常工作。有没有一种方法可以让连接持续更长时间,或者可以将文件分部分发送过来,以避免连接失败?

在web.config中添加以下内容:

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="xxx" />
  </system.web>
</configuration>

我认为默认情况下文件大小限制为4mb。其中xxx是kb

我可以建议您使用API发送有效负载,而不是转换为base64吗?似乎前端和base64文件上的阻塞操作也会增加传输大小。这肯定会提高一些性能。我希望您的环境支持这一点。我工作的公司不喜欢使用API,他们希望它都是本地构建的。但是,如果没有其他解决方案,那么我会给它一个goFormData API,它是所有主要浏览器中都存在的客户端web API。您可以检查本机APII的覆盖范围,对文件进行了双重检查,结果显示base64将文件转换为11MB左右。我尝试将maxRequestLength设置为11MB 11264kb,但遇到了相同的问题。