Haskell 在Snap Framework中的文件上载处理程序(handleMultiPart)中显示进度状态
我正在使用Snap框架来制作一个web应用程序的原型。我试图使用Snap.Util.FileUploads.handleMultiPart上载文件,使用iteratee立即处理它,同时在同一页面上显示进度消息 可以钩住Data.Enumerator.printChunks在控制台上调试进度。在处理文件上载时,我不知道如何在同一页上显示进度。在文件上载期间,如何使用handleMultiPart显示进度消息Haskell 在Snap Framework中的文件上载处理程序(handleMultiPart)中显示进度状态,haskell,haskell-snap-framework,Haskell,Haskell Snap Framework,我正在使用Snap框架来制作一个web应用程序的原型。我试图使用Snap.Util.FileUploads.handleMultiPart上载文件,使用iteratee立即处理它,同时在同一页面上显示进度消息 可以钩住Data.Enumerator.printChunks在控制台上调试进度。在处理文件上载时,我不知道如何在同一页上显示进度。在文件上载期间,如何使用handleMultiPart显示进度消息 另外,handleMultiPart使用PartInfo->Iteratee ByteSt
另外,handleMultiPart使用PartInfo->Iteratee ByteString IO a来处理文件上载。handleMultiPart是否应该采用MonadIO m=>PartInfo->Iteratee by Testring m a使其更简单?一般来说,我不知道在上传文件时是否可以通过推送HTML响应在客户端显示进度。据我所知,实现这一点的web应用程序通常使用一些JavaScript API或Flash小部件来实现。当然,使用handleMultiPart是不可能的 然而,流式传输到控制台是另一回事——您可以很容易地提供一个枚举来记录区块信息或更新MVar,作为替代方案,然后向下游传递控制。在即将发布的Snap1.0中,这将减少大脑弯曲,它将使用更容易思考的io流
最后,handleMultiPart在IO上工作,因为否则需要对monad执行run操作,即从ma->ioa反向提升。有很多方法可以做到这一点,但是snap值得等待snap 1.0。希望它能尽快发布。