public async Task<UploadResult> Upload(string fullPath) { using (var content = new MultipartFormDataContent()) { var fileName = Path.GetFileName(fullPath); var request = new UploadRequest(fileName); var stringContent = new StringContent(JsonConvert.SerializeObject(request)); stringContent.Headers.Add("Content-Disposition", "form-data; name=\"json\""); content.Add(stringContent, "json"); var fs = File.OpenRead(fullPath); var streamContent = new StreamContent(fs); streamContent.Headers.Add("Content-Type", "application/octet-stream"); streamContent.Headers.Add("Content-Disposition", string.Format("form-data; name=\"file\"; filename=\"{0}\"", fileName)); content.Add(streamContent, "file", fileName); var requestUri = info.Get("/api/upload"); var message = await client.PostAsync(requestUri, content); var stringResult = await message.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<UploadResult>(stringResult); } }
public static UploadResult Ok(UploadRequest request) { return new UploadResult(request); }
private UploadResult(UploadRequest request) { Request = request; }