gpt4 book ai didi

asp.net - 通过网络服务接收文件的最佳方式

转载 作者:行者123 更新时间:2023-12-02 14:40:41 25 4
gpt4 key购买 nike

我有一个由可通过 GET/POST/SOAP 调用的 ASP.NET Web 服务组成的 API。

一项新功能将要求我通过此网络服务接受文件。基本上,我允许用户通过 API 将文件上传到文件存档,否则他们可以通过登录我们基于浏览器的管理系统来完成此操作。

API 需要尽可能易于使用。我正在考虑放弃 SOAP 支持,因为我们的 PHP 客户端主要使用 GET/POST 方法,而 .NET 客户端不介意这两种方式。以此为先决条件,我正在考虑简单地创建一个 UploadFile(fileName) 方法,并要求用户通过 POST 发送文件作为正常的文件上传。

但是,我将无法将文件字段指定为该方法的参数,对吗?因此,如果我只是在文档中声明“文件应在名为"file"的 POST 字段中发送”,那么当我需要读取该文件时,这会带来任何问题吗?

所有文件均为二进制格式、PDF、各种图像格式、FLV 等。另外,文件大小主要在2-20MB附近,但是考虑到上述解决方案,我在接受250MB区域的文件时会遇到麻烦吗?

以这种方式接收文件会导致在将文件写入磁盘之前将其完全加载到内存中 - 除了让服务接收 Stream 从而禁止我接受其他参数之外,还有什么办法可以解决这个问题吗?妨碍服务的便捷使用?

<小时/>

除了我这边可能做的事情之外,我还很好奇如何让被调用者尽可能轻松地发送文件。我猜 POST 是接收文件最方便的方式之一,但如果有人有任何意见,我也想听听。

最佳答案

使用简单的 POST 方法来提交文件并没有什么可怕的错误,只是将文件上传与任何相关元数据(即该方法的其他参数,如果它与该方法捆绑在一起)绑定(bind)的细节。

然而,今天,我相信在 SOAP 调用中处理大型对象的方法是 MTOM。这是一种优化,但它为您提供了实际有效负载的流接口(interface)。因此,如果需要,该框架可以轻松地将大型对象缓存到磁盘(它们是否真的这样做是另一个问题,但没有人希望必须将 250M 的上传吸收到内存中,所以我想任何现代框架都会卸载大型附件) .

关于asp.net - 通过网络服务接收文件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com