gpt4 book ai didi

c# - 在单个 HTTPWebRequest 中上传多个文件

转载 作者:行者123 更新时间:2023-11-30 12:11:37 25 4
gpt4 key购买 nike

我已经创建了一个接受两件事的服务:

1) 称为“类型”的正文参数。

2) 要上传的 csv 文件。

我正在像这样在服务器端阅读这两件事:

 //Read body params
string type = HttpContext.Current.Request.Form["type"];

//read uploaded csv file
Stream csvStream = HttpContext.Current.Request.Files[0].InputStream;

我如何测试这个,我正在使用 Fiddler 来测试这个但是我一次只能发送一个东西(类型或文件),因为两个东西的内容类型不同,如何我可以同时使用内容类型 multipart/form-dataapplication/x-www-form-urlencoded 吗?

即使我使用这个代码

    public static void PostDataCSV()
{
//open the sample csv file
byte[] fileToSend = File.ReadAllBytes(@"C:\SampleData.csv");

string url = "http://localhost/upload.xml";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "multipart/form-data";
request.ContentLength = fileToSend.Length;


using (Stream requestStream = request.GetRequestStream())
{
// Send the file as body request.
requestStream.Write(fileToSend, 0, fileToSend.Length);
requestStream.Close();
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//read the response
string result;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}

Console.WriteLine(result);
}

这也不会向服务器发送任何文件。

最佳答案

您上面的代码没有创建适当的多部分正文。

您不能简单地将文件写入流中,每个部分都需要一个带有每个部分 header 的前导边界标记等。

参见 Upload files with HTTPWebrequest (multipart/form-data)

关于c# - 在单个 HTTPWebRequest 中上传多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087028/

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