ASMX文件上传

2xM*_*Max 7 .net c# web-services asmx

有没有办法使用ASMX Web服务将文件从本地文件系统上传到服务器中的文件夹(没有WCF,不要问为什么:)?

UPD

PSfile大小可以是2-10 GB

Dar*_*rov 9

当然:

[WebMethod]
public void Upload(byte[] contents, string filename)
{
    var appData = Server.MapPath("~/App_Data");
    var file = Path.Combine(appData, Path.GetFileName(filename));
    File.WriteAllBytes(file, contents);
}
Run Code Online (Sandbox Code Playgroud)

然后公开服务,从WSDL生成客户端代理,调用,标准的东西.

-

更新:

我现在看到有关处理大文件的更新.内置于WCF中的具有流MTOM协议被优化用于处理这样的场景.


Uwe*_*eim 3

在开发将大文件上传到服务器的免费工具时,我还使用 .NET 2.0 和 Web 服务。

为了使应用程序对非常大的文件更具容错性,我决定不上传一个大byte[]数组,而是进行“分块”上传。

即,为了上传 1 MB 文件,我确实调用了上传 SOAP 函数 20 次,每次调用都会传递一个byte[]50 KB 的数组,并再次将其在服务器上连接在一起。

我也会数包裹,当一个包裹掉下来时,我会多次尝试重新上传。

这使得上传的容错能力更强,并且 UI 的响应速度更快。

有兴趣的话,这是该工具的CP文