C#实现文件上传和接收功能
|
admin
2025年7月22日 18:6
本文热度 958
|
using System;using System.IO;using System.Web;using System.Web.Http;
namespace Mes.Controllers{ public class FileController : ApiController { [HttpPost] public string UploadFile() { string result = string.Empty; try { string fileName = HttpContext.Current.Request.Files[0].FileName; Stream stream = HttpContext.Current.Request.Files[0].InputStream;
var forms = HttpContext.Current.Request.Form; foreach (var item in forms) { string val = forms[item.ToString()]; } string uploadFolder = "F:\\图片"; string savePath = System.IO.Path.Combine(uploadFolder, fileName); FileStream fsWrite = new FileStream(savePath, FileMode.Create);
byte[] bytes = new byte[1024 * 4]; int total = 0; int size = 0; do { size = stream.Read(bytes, 0, bytes.Length); fsWrite.Write(bytes, 0, size); total += size; } while (size > 0);
fsWrite.Close(); result = "true"; } catch (Exception ex) { result = ex.Message; } return result; } }}
using System.Net;using System.Net.Http;using System.Net.Http.Headers;
public string PostFile(string url, Dictionary<string, object> dics, string filePath){string result = string.Empty;try { MultipartFormDataContent form = new MultipartFormDataContent();using (HttpClient client = new HttpClient()) { MediaTypeWithQualityHeaderValue temp = new MediaTypeWithQualityHeaderValue("application/json") { CharSet = "utf-8" }; client.DefaultRequestHeaders.Accept.Add(temp);
foreach (var keyValuePair in dics) { form.Add(new StringContent(keyValuePair.Value.ToString()), keyValuePair.Key); }
Stream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);var fileName = Path.GetFileName(filePath);
form.Add(new StreamContent(fileStream), "file", fileName);
Task<HttpResponseMessage> task = client.PostAsync(url, form); task.Wait(); HttpResponseMessage response = task.Result; response.EnsureSuccessStatusCode();
string responseBody = task.Result.Content.ReadAsStringAsync().Result; Console.WriteLine(responseBody); result = responseBody; }return result; }catch (Exception ex) {throw new Exception(ex.Message); }}
public string PostFile(string url, Dictionary<string, object> dics, string filePath){string result = string.Empty;try { MultipartFormDataContent form = new MultipartFormDataContent();using (HttpClient client = new HttpClient()) { MediaTypeWithQualityHeaderValue temp = new MediaTypeWithQualityHeaderValue("application/json") { CharSet = "utf-8" }; client.DefaultRequestHeaders.Accept.Add(temp);
foreach (var keyValuePair in dics) { form.Add(new StringContent(keyValuePair.Value.ToString()), keyValuePair.Key); }
using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) {byte[] data = new byte[fileStream.Length]; fileStream.Read(data, 0, data.Length); fileStream.Close();
var fileName = Path.GetFileName(filePath); form.Add(new ByteArrayContent(data), "file", fileName); }
Task<HttpResponseMessage> task = client.PostAsync(url, form); task.Wait(); HttpResponseMessage response = task.Result; response.EnsureSuccessStatusCode();
string responseBody = task.Result.Content.ReadAsStringAsync().Result; Console.WriteLine(responseBody); result = responseBody; }return result; }catch (Exception ex) {throw new Exception(ex.Message); }}
阅读原文:原文链接
该文章在 2025/7/23 12:17:41 编辑过