我正在使用淘汰赛开发一个ASP.NET MVC应用程序。它是一个单页面的应用程序我有上传图片的功能。我不确定什么是最好的选择。我遇到的问题是,会话不是一个粘性会话。这意味着无法保证请求将转到同一个框中。我试图进行图片上传的选项是
1.)数据uri - 我已经为图像上传创建了一个自定义的敲除绑定,它将表单发布到MVC控制器,控制器将图像转换为base64字符串,并将响应设置为JS中的viewmodel属性并绑定img标签。虽然这似乎是最好的解决方案,但我必须支持IE8并且这个工作在IE8中起作用,因为IE8对数据URI有限制
2.)将图像存储在应用程序服务器的临时文件夹中 - 由于粘性会话不可用,因此无法可靠地运行
3.)将图像存储在会话中 - 这似乎不具备性能,因为会话最终会占用内存
还有其他办法吗?
答案 0 :(得分:0)
广告1)此选项很适合会话问题,但您在传输过程中会产生很大的开销(每个图像都会发送到客户端并多次返回)。
广告2)您可以将图像存储在唯一子文件夹中的临时文件夹中(例如使用GUID名称),并仅向此客户端发送此GUID。当然,你必须提供解决方案,以便不时清理这个文件夹 - 但这很容易。
广告3)如果您将会话存储在内存中,那么您的Web服务器会因内存不足而快速“爆炸”。
因此,在我的选项中,最佳选择是2,因为: