我被要求在C#中执行以下操作:
/** * 1. Create a MultipartPostMethod * 2. Construct the web URL to connect to the SDP Server * 3. Add the filename to be attached as a parameter to the MultipartPostMethod with parameter name "filename" * 4. Execute the MultipartPostMethod * 5. Receive and process the response as required * /
我写了一些没有错误的代码,但是没有附加文件.
有人可以查看我的C#代码,看看我是否错误地编写了代码?
这是我的代码:
var client = new HttpClient(); const string weblinkUrl = "http://testserver.com/attach?"; var method = new MultipartFormDataContent(); const string fileName = "C:\file.txt"; var streamContent = new StreamContent(File.Open(fileName, FileMode.Open)); method.Add(streamContent, "filename"); var result = client.PostAsync(weblinkUrl, method); MessageBox.Show(result.Result.ToString());
小智.. 6
我知道这是一个老帖子但是对于那些寻求解决方案的人来说,提供一个更直接的答案,这就是我发现的:
using System.Diagnostics; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web; using System.Web.Http; public class UploadController : ApiController { public async TaskPostFormData() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); // This illustrates how to get the file names. foreach (MultipartFileData file in provider.FileData) { Trace.WriteLine(file.Headers.ContentDisposition.FileName); Trace.WriteLine("Server file path: " + file.LocalFileName); } return Request.CreateResponse(HttpStatusCode.OK); } catch (System.Exception e) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e); } } }
这是我发现它的地方
http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-2
有关更精细的实施
http://galratner.com/blogs/净/存档/ 2013/03 /第22 /使用-HTML-5和最Web的API换Ajax的文件上传,与图像预览和-A-进步,bar.aspx
我知道这是一个老帖子但是对于那些寻求解决方案的人来说,提供一个更直接的答案,这就是我发现的:
using System.Diagnostics; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web; using System.Web.Http; public class UploadController : ApiController { public async Task<HttpResponseMessage> PostFormData() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); // This illustrates how to get the file names. foreach (MultipartFileData file in provider.FileData) { Trace.WriteLine(file.Headers.ContentDisposition.FileName); Trace.WriteLine("Server file path: " + file.LocalFileName); } return Request.CreateResponse(HttpStatusCode.OK); } catch (System.Exception e) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e); } } }
这是我发现它的地方
http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-2
有关更精细的实施
http://galratner.com/blogs/净/存档/ 2013/03 /第22 /使用-HTML-5和最Web的API换Ajax的文件上传,与图像预览和-A-进步,bar.aspx