c#webrequest发布文件和表单数据
各位。我在发布带有表单数据和文件的WebRequest时遇到问题。 我有一个WCF服务,它有一个名为“SaveFileAndData”的方法。我无法更改“SaveFileAndData”方法体。此方法是在DoSomething click事件上从aspx页面调用的 现在我可以将表单数据发布到wcf服务方法,但无法发布包含表单数据的文件。我不知道如何发布包含表单数据的文件 在服务方法中,我们可以使用HttpContext.Current.Request.form[“id”]和文件HttpContext.Current.Request.files[“image1”] 我最近三天一直在寻找这个问题的解决方案,但没有得到任何有用的解决方案 发布的文件应通过HttpContext.Current.Request.files[“image1”]获取。 这是我关于stackoverflow的第一个问题,我不知道如何发布这个问题 谢谢c#webrequest发布文件和表单数据,c#,asp.net,forms,wcf,webrequest,C#,Asp.net,Forms,Wcf,Webrequest,各位。我在发布带有表单数据和文件的WebRequest时遇到问题。 我有一个WCF服务,它有一个名为“SaveFileAndData”的方法。我无法更改“SaveFileAndData”方法体。此方法是在DoSomething click事件上从aspx页面调用的 现在我可以将表单数据发布到wcf服务方法,但无法发布包含表单数据的文件。我不知道如何发布包含表单数据的文件 在服务方法中,我们可以使用HttpContext.Current.Request.form[“id”]和文件HttpConte
OperationContract()]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare, Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SaveFileAndData")]
void SaveFileAndData();
public void SaveFileAndData()
{
string ext1 = "";
string ext2 = "";
string filename1 = "";
string filename2 = "";
long id = 0;
if (HttpContext.Current.Request.Form["id"] != null && HttpContext.Current.Request.Form["id"].ToString().Trim() != "")
id = Int64.Parse(HttpContext.Current.Request.Form["id"].Trim());
int cid = 0;
if (HttpContext.Current.Request.Form["cid"] != null && HttpContext.Current.Request.Form["cid"].ToString().Trim() != "")
cid = Int32.Parse(HttpContext.Current.Request.Form["cid"].Trim());
HttpContext context = HttpContext.Current;
if (context != null)
{
if (context.Request.Files.Count >= 1)
{
HttpPostedFile file1 = HttpContext.Current.Request.Files["image1"];
if (file1 != null)
{
ext1 = System.IO.Path.GetExtension(file1.FileName);
filename1 = custregid + ext1;
if (((ext1.ToLower() != ".jpg") & (ext1.ToLower() != ".jpeg") & (ext1.ToLower() != ".gif") & (ext1.ToLower() != ".png") & (ext1.ToLower() != ".bmp")))
{
// Perform some operation
}
}
HttpPostedFile file2 = HttpContext.Current.Request.Files["image2"];
if (file2 != null)
{
ext2 = System.IO.Path.GetExtension(file2.FileName);
filename2 = custregid + ext2;
if (((ext2.ToLower() != ".jpg") & (ext2.ToLower() != ".jpeg") & (ext2.ToLower() != ".gif") & (ext2.ToLower() != ".png") & (ext2.ToLower() != ".bmp")))
{
// Perform some operation
}
}
}
}
}
protected void btnDoSomeThing_OnClick(object sender, EventArgs e)
{
try
{
long id = 1;
long cid = 1;
string key = "key";
WebRequest webrequest1 = WebRequest.Create("http://localhost:65010/API/Service.svc/SaveFileAndData");
webrequest1.Method = "POST";
webrequest1.Headers.Add("key", key);
string postData = "";
postData = "id=" + id + "&cid=" +cid;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
webrequest1.ContentType = "application/x-www-form-urlencoded";
webrequest1.ContentLength = byteArray.Length;
Stream dataStream = webrequest1.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
// Get the response.
WebResponse webresponse = webrequest1.GetResponse();
Stream strresponse = webresponse.GetResponseStream();
StreamReader strreader = new StreamReader(strresponse);
string responseFromServer = strreader.ReadToEnd();
webresponse.Close();
strresponse.Close();
strreader.Close();
}
catch (Exception ex)
{
throw ex;
}
}
请按照本文所述进行尝试:或者您正在使用哪个版本的.NET Framework?请按照本文所述进行尝试:或者您正在使用哪个版本的.NET Framework?