如何使用asp.net app上的文件上传和其他字段生成POST请求?

时间:2014-07-01 03:30:58

标签: c# asp.net

有人可以给我一个简短的例子,说明如何在ASP.NET应用程序的单个POST请求中上传文件和发送多个文本字段吗?

例如,在我在内部服务器上运行的asp.net应用程序中,我想使用POST请求将文件和2个文本字段(例如名称,日期)上传到另一台服务器。我认为我需要使用WebClient,但我不太确定如何在单个请求中将多个字段与文件上传相结合。

感谢。

1 个答案:

答案 0 :(得分:1)

一个好的AJAX选项是发送一个FormData对象(注意:与IE< 10不兼容),然后你可以发布到你的.NET后端,一个...

//初始化表单数据的新实例     var uploadData = new FormData();

//Get parameters 
uploadData.append("ID", eID);
uploadData.append("adPhoto", theImage);
uploadData.append("field2", field2);

//Make AJAX call 
var xhr = new XMLHttpRequest();
xhr.open("POST", Defaults.PhotoUploadService);
xhr.send(uploadData);

在后端......

public static void UploadFile() {

int ID = Context.Request.Params["ID"];
string field = Convert.ToInt32(Context.Request.Params["field"]);

//Get your photo here
byte[] fileData = null;
HttpPostedFile postedFile = Context.Request.Files["adPhoto"];

using (var binaryReader = new BinaryReader(postedFile.InputStream))
      {
      fileData = binaryReader.ReadBytes(Context.Request.Files[0].ContentLength);
      }

// Do whatever you have to do at this point...

}

有道理吗?希望有所帮助并且是一个良好的开端!