如何用c#从web的POST数据中读取文件

本文关键字:数据 读取 文件 POST 何用 web | 更新日期: 2023-09-27 18:12:16

基本上,我正在建立一个网站,允许用户上传文件。从前端(JavaScript),用户将浏览一个文件,我可以得到网站发送POST数据(参数"UploadInput"和它的值,其中值是文件)在后端(c#)中,我想复制文件并将其保存在特定路径中。下面是我的做法。

var files = Request.Files;
file[0].SaveAs("'temp''" + file[0].FileName);

我遇到的问题是,我得到了错误消息说索引超出范围。我尝试了Response.Write(files.Count),结果是0而不是1。我想知道我哪里做错了,如何解决它,或者是否有更好的方法。谢谢!

编辑:

我正在使用HttpFox调试。从HttpFox,我可以看到,在POST数据下,参数是"UploadInput",值是"test.txt"

编辑2:所以我尝试了马克提供的方法,但我有一个不同的问题。我能够创建一个新文件,但是,内容不能复制过来。我试着在记事本中打开新创建的文件,它只显示"UploadInput = test.txt"

如何用c#从web的POST数据中读取文件

如果他们只是将文件作为正文内容发布,那么这里将没有"文件",因此file[0]将失败。相反,您需要查看输入流,并简单地从该流中读取。例如:

using(var file = File.Create(somePath)) {
    Request.InputStream.CopyTo(file);
}