Reactjs 在AspNet Core中上载带有进度更新的中大型文件
所谓中到大,我指的是10mb->200mb的声音文件,如果这很重要的话 基本上我想制作一个API,对文件本身进行光谱分析,这需要上传文件。但出于UI/UX的原因,最好为上传过程提供一个进度条。实现这种交互的常见架构是什么Reactjs 在AspNet Core中上载带有进度更新的中大型文件,reactjs,asp.net-core,asp.net-core-mvc,asp.net-core-1.0,asp.net-core-webapi,Reactjs,Asp.net Core,Asp.net Core Mvc,Asp.net Core 1.0,Asp.net Core Webapi,所谓中到大,我指的是10mb->200mb的声音文件,如果这很重要的话 基本上我想制作一个API,对文件本身进行光谱分析,这需要上传文件。但出于UI/UX的原因,最好为上传过程提供一个进度条。实现这种交互的常见架构是什么 上载文件的客户端应用程序将是一个javascript客户端reactjs/redux,API是用ASP.NET核心编写的。我已经看到了一些使用WebSocket在进程中更新客户端的示例,以及其他一些示例,其中客户端在给定资源url的情况下轮询状态更新以查询状态。对于我应该知道的
上载文件的客户端应用程序将是一个javascript客户端reactjs/redux,API是用ASP.NET核心编写的。我已经看到了一些使用WebSocket在进程中更新客户端的示例,以及其他一些示例,其中客户端在给定资源url的情况下轮询状态更新以查询状态。对于我应该知道的这样一件事,有没有什么最佳实践或现代的做法?TIA通常,在将控制器中的输入流读取到某个变量会话特定变量时,只需保存进度状态,因为可能同时有几个文件上载会话,然后通过ajax请求或信号器从客户端获取此状态 您可以看看这个示例: 我尝试了11MB的文件,没有问题。有一条线
await Task.Delay(10); // It is only to make the process slower
在这里,不要忘记在真正的解决方案中删除它
在本示例中,文件由ajax加载,因此我没有尝试真正的大文件,但您可以使用本示例中的iframe解决方案:
其他部分将几乎相同
希望这对你有帮助。如果您还有其他问题,请随时询问。一般来说,您只需要在将控制器中的输入流读取到某个变量会话特定变量时保存进度状态,因为可能同时有几个文件上载会话,然后通过ajax请求或信号器从客户端获取此状态 您可以看看这个示例: 我尝试了11MB的文件,没有问题。有一条线
await Task.Delay(10); // It is only to make the process slower
在这里,不要忘记在真正的解决方案中删除它
在本示例中,文件由ajax加载,因此我没有尝试真正的大文件,但您可以使用本示例中的iframe解决方案:
其他部分将几乎相同
希望这对你有帮助。如果有任何其他问题,请随时询问。上传进度或光谱分析?上传进度。我已经编写了一个PoC,它可以进行光谱分析,并返回[0-100]%的进度,这就是服务器端。我只是不知道如何做上传进度。实际上,这将是一个两阶段的进度条,第一阶段是上传,第二阶段是分析,但我不确定上传进度将如何完成。上传的进度还是光谱分析的进度?上传的进度。我已经编写了一个PoC,它可以进行光谱分析,并返回[0-100]%的进度,这就是服务器端。我只是不知道如何做上传进度。事实上,这将是一个2阶段的进度条第1阶段是上传第2阶段是分析,但我不确定上传进度将如何完成。感谢加载,我今天晚些时候一定会看一看这是一个大问题,在服务器上报告了进度,在单个控制器操作中。这无法在需要的地方查看客户端的进度。@ProfK您看过演示了吗?显示客户端的进度。客户端要求服务器端获取当前进度。感谢加载,我今天晚些时候一定会看一看。一个大问题是,进度报告在服务器上,并且在单个控制器操作中。这无法在需要的地方查看客户端的进度。@ProfK您看过演示了吗?显示客户端的进度。客户端要求服务器端获取当前进度。