C# 如何在同一帖子中上传数据和文件?
我需要上传一个pdf文件和一个电话号码到一个服务,将发送传真 有效的表单(来自网页)如下所示:C# 如何在同一帖子中上传数据和文件?,c#,file-upload,webclient,C#,File Upload,Webclient,我需要上传一个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" />
<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>
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
类中的一些简单内容?是否有其他方法可以将UploadFile
和UploadData
组合在一起,像网页一样发布这两个值?您必须使用边界来分离上传的数据。有关详细信息,请参见此部分。您必须使用边界分隔上传的数据。有关详细信息,请参见此。首先,您在执行c.Headers时有一个输入错误。请在多部分/表单数据头中添加。:-)
其次,您需要通过在内容部分之间引入边界来正确设置帖子的格式。看一看。首先,您在执行c.Headers时有一个输入错误。请在多部分/表单数据头中添加。:-)
其次,您需要通过在内容部分之间引入边界来正确设置帖子的格式。看一看。这可能有帮助,也可能没有帮助,但我注意到一个打字错误:
c.Headers.Add("Content-Type", "multipart/form-dat");
应该是
c.Headers.Add("Content-Type", "multipart/form-data");
这可能有帮助,也可能没有帮助,但我注意到一个输入错误:
c.Headers.Add("Content-Type", "multipart/form-dat");
应该是
c.Headers.Add("Content-Type", "multipart/form-data");
修正了打字错误,只是在帖子里,不是在代码里--现在看边界…修正了打字错误,只是在帖子里,不是在代码里--现在看边界。。。