gpt4 book ai didi

c# - 如何在同一个帖子中上传数据和文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:58 25 4
gpt4 key购买 nike

我需要将 pdf 文件和电话号码上传到将发送传真的服务。

有效的表单(来自网页)如下所示:

<form action="send.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="pdf" id="pdf" />
<input type="text" name="phonenumber" id="phonenumber" />
<input type="submit" name="Submit" />
</form>

问题是我需要从用 C# 编写的 Windows 应用程序中执行此操作。

如何在同一帖子中同时上传文件和字符串?

我正在使用 WebClient 类。
我试着打开文件,读取它的字节,然后像这样发布所有内容:

string content = "phonenumber="+request.PhoneNumber+"&pdf=";

WebClient c = new WebClient();
c.Headers.Add("Content-Type", "multipart/form-data");
c.Headers.Add("Cache-Control", "no-cache");
c.Headers.Add("Pragma", "no-cache");

byte[] bret = null;
byte[] p1 = Encoding.ASCII.GetBytes(content);
byte[] p2 = null;
using (StreamReader sr = new StreamReader(request.PdfPath))
{
using (BinaryReader br = new BinaryReader(sr.BaseStream))
{
p2 = br.ReadBytes((int)sr.BaseStream.Length);
}
}

byte[] all = new byte[p1.Length + p2.Length];
Array.Copy(p1, 0, all, 0, p1.Length);
Array.Copy(p2, 0, all, p1.Length, p2.Length);

bret = c.UploadData(url, "POST", all);

这行不通。

我没有服务器日志或类似的东西来帮助我调试它。

WebClient 类中是否遗漏了一些简单的东西?有没有其他方法可以结合 UploadFileUploadData 来发布这两个值,就像网页(有效)一样?

最佳答案

首先,您在 multipart/form-data header 中执行 c.Headers.Add 时出现错字。 :-)

其次,您需要通过在内容部分之间引入边界来正确格式化您的帖子。看看here .

关于c# - 如何在同一个帖子中上传数据和文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4277849/

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