长沙企业网站seo,wordpress外网固定链接,html5网站建设方案,第三方编辑网站怎么做问题描述
用户上传产品示例图片到服务器端上#xff0c;客户端在请求图片资源时#xff0c;当服务端架设了多个节点的情况下#xff0c;由于没有负载均衡请求到保存图片资源的服务器#xff0c;出现图片访问404的问题。
这里保存上传文件时#xff0c;同时需要将该文件保…问题描述
用户上传产品示例图片到服务器端上客户端在请求图片资源时当服务端架设了多个节点的情况下由于没有负载均衡请求到保存图片资源的服务器出现图片访问404的问题。
这里保存上传文件时同时需要将该文件保存到其他的服务器上。需要用到 W e b C l i e n t \textcolor{red}{WebClient } WebClient类 WebClient介绍
本篇文章为该方法实现的一个记录。
实现方案
本篇文章中用到了WebClient的同步方法 UploadFile方法。 byte[] UploadFile(Uri address, string fileName) 1 address 一个POST网络资源本片文章中为一个文件下载保存到服务器端的一个接口地址。2 fileName 文件的物理路径3 网络资源处理的返回结果【字节数组的形式返回】 public class ReturnMessageModelT{/// summary/// 错误代码,有時沒有,只做特殊判斷用/// /summarypublic string Code { get; set; } ;/// summary/// 0表示成功,1表示失敗,3表示Token 失效或者無效/// /summarypublic int Status { get; set; }/// summary/// 提示信息/// /summarypublic string Message { get; set; } ;/// summary/// 返回數據/// /summarypublic T Data { get; set; } default(T);
}/// summary/// 文件上传/// /summary[Route(api/[controller]/[action])][ApiController][EnableCors(any)][Produces(application/json)]public class FileController :ControllerBase{/// summary/// 文件上傳from表單方式/// /summary/// param namefile文件/param/// returns/returns[HttpPost]public async TaskReturnMessageModelstring UploadFiles(IFormFile file){ReturnMessageModelstring result new ReturnMessageModelstring();try{//获得文件后缀信息string originName file.FileName;//文件保存路径string rootPath Directory.GetCurrentDirectory();rootPath rootPath.Replace(\\, /);string destination rootPath AMSConstant.FILE_ROOT_PATH / originName;DirectoryInfo info new DirectoryInfo(rootPath AMSConstant.FILE_ROOT_PATH);if (!info.Exists){//创建父级文件夹info.Create();}using (FileStream f System.IO.File.Create(destination)){await file.CopyToAsync(f);};result.Code 0;result.Status 0;result.Message 上传文件成功;return result;}catch (Exception e) {return new ReturnMessageModelstring(1,1,上传文件失败,null);}}当运行项目后该上传文件保存的接口URI 为 http://localhost:50911/api/File/UploadFiles。测试WebClient 的上载文件功能代码如下。将本地文件1.txt同步到资源处理的URI上。【在实际部署的时候这个URI是需要同步服务器上的URI】 [HttpGet]public ReturnMessageModelstring WebClientTest(){WebClient client new WebClient();string url http://localhost:50911/api/File/UploadFiles;string file C:\\Users\\F1336301\\Desktop\\1.txt;byte[] bytes client.UploadFile(url, file);//根据回传标识后,更新数据 string response Encoding.UTF8.GetString(bytes);var obj JObject.Parse(response);if (obj.GetValue(Code).ToObjectint() 0){//忽略响应成功后的逻辑}return new ReturnMessageModelstring(success);}当请求WebClientTest时发现文件已经保存到指定文件夹。
结语
本片文章主要提供了一个本地文件同步到远端服务器的一个参考方法如有其它的解决方案希望和大家一起共享。