From b928a2f0011fc867d7d219cfff4b764250f5b778 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期三, 09 七月 2025 17:03:08 +0800 Subject: [PATCH] 修复查交互表更新终点的流程,添加绑定货位写入物料明细表 --- api/ImageController.cs | 200 ++++++++++++++++++++++++++------------------------ 1 files changed, 104 insertions(+), 96 deletions(-) diff --git a/api/ImageController.cs b/api/ImageController.cs index 41b034f..984dd64 100644 --- a/api/ImageController.cs +++ b/api/ImageController.cs @@ -5,105 +5,113 @@ using System.Web; using System.Web.Http; -public class ImageController : ApiController { - private readonly string _baseStoragePath = HttpContext.Current.Server.MapPath("~/StaticStorage"); - private readonly string[] _allowedExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp" }; +namespace HH.WCS.Mobox3.AnGang.api { - // 涓婁紶鍥剧墖鎺ュ彛 - [HttpPost] - [Route("api/image/upload")] - public HttpResponseMessage UploadImage() { - try { - if (!Request.Content.IsMimeMultipartContent()) { - return Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType, "璇锋眰蹇呴』鍖呭惈澶氶儴鍒嗗唴瀹�); + //[RoutePrefix("api/image")] + public class ImageController : ApiController { + //private readonly string _baseStoragePath = HttpContext.Current.Server.MapPath("~/StaticStorage"); + private readonly string _baseStoragePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "StaticStorage"); + private readonly string[] _allowedExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp" }; + + // 涓婁紶鍥剧墖鎺ュ彛 + [HttpPost] + //[ActionName("Upload")] + //[Route("api/image/upload")] + [Route("UploadImage")] + public HttpResponseMessage UploadImage() { + try { + if (!Request.Content.IsMimeMultipartContent()) { + return Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType, "璇锋眰蹇呴』鍖呭惈澶氶儴鍒嗗唴瀹�); + } + + var provider = new MultipartFormDataStreamProvider(Path.GetTempPath()); + var result = Request.Content.ReadAsMultipartAsync(provider).Result; + + if (result.FileData.Count == 0) { + return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "鏈帴鏀跺埌鏂囦欢"); + } + + var fileData = result.FileData[0]; + var fileName = fileData.Headers.ContentDisposition.FileName.Trim('"'); + var fileExt = Path.GetExtension(fileName).ToLower(); + + if (Array.IndexOf(_allowedExtensions, fileExt) == -1) { + return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "涓嶆敮鎸佺殑鏂囦欢绫诲瀷"); + } + + // 鐢熸垚鏃ユ湡璺緞 + var now = DateTime.Now; + var year = now.ToString("yyyy"); + var month = now.ToString("MM"); + var day = now.ToString("dd"); + + // 鐢熸垚鍞竴鏂囦欢鍚�+ var newFileName = $"{now:yyyy-MM-dd-HHmmssfff}{fileExt}"; + + // 鐩爣璺緞 + var targetPath = Path.Combine(_baseStoragePath, "image", year, month, day); + + // 纭繚鐩綍瀛樺湪 + Directory.CreateDirectory(targetPath); + + // 瀹屾暣鏂囦欢璺緞 + var fullPath = Path.Combine(targetPath, newFileName); + + // 绉诲姩鏂囦欢鍒扮洰鏍囦綅缃�+ File.Move(fileData.LocalFileName, fullPath); + + // 杩斿洖璁块棶URL + var url = $"{Request.RequestUri.Scheme}://{Request.RequestUri.Authority}/static/image/{year}/{month}/{day}/{newFileName}"; + + return Request.CreateResponse(HttpStatusCode.OK, new { Url = url }); } - - var provider = new MultipartFormDataStreamProvider(Path.GetTempPath()); - var result = Request.Content.ReadAsMultipartAsync(provider).Result; - - if (result.FileData.Count == 0) { - return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "鏈帴鏀跺埌鏂囦欢"); + catch (Exception ex) { + return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); } - - var fileData = result.FileData[0]; - var fileName = fileData.Headers.ContentDisposition.FileName.Trim('"'); - var fileExt = Path.GetExtension(fileName).ToLower(); - - if (Array.IndexOf(_allowedExtensions, fileExt) == -1) { - return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "涓嶆敮鎸佺殑鏂囦欢绫诲瀷"); - } - - // 鐢熸垚鏃ユ湡璺緞 - var now = DateTime.Now; - var year = now.ToString("yyyy"); - var month = now.ToString("MM"); - var day = now.ToString("dd"); - - // 鐢熸垚鍞竴鏂囦欢鍚�- var newFileName = $"{now:yyyy-MM-dd-HHmmssfff}{fileExt}"; - - // 鐩爣璺緞 - var targetPath = Path.Combine(_baseStoragePath, "image", year, month, day); - - // 纭繚鐩綍瀛樺湪 - Directory.CreateDirectory(targetPath); - - // 瀹屾暣鏂囦欢璺緞 - var fullPath = Path.Combine(targetPath, newFileName); - - // 绉诲姩鏂囦欢鍒扮洰鏍囦綅缃�- File.Move(fileData.LocalFileName, fullPath); - - // 杩斿洖璁块棶URL - var url = $"{Request.RequestUri.Scheme}://{Request.RequestUri.Authority}/static/image/{year}/{month}/{day}/{newFileName}"; - - return Request.CreateResponse(HttpStatusCode.OK, new { Url = url }); } - catch (Exception ex) { - return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); + + // 鑾峰彇鍥剧墖鎺ュ彛 - 瀹為檯鐢遍潤鎬佹枃浠跺鐞嗭紝杩欓噷鍙槸绀轰緥 + [HttpGet] + //[ActionName("Get")] + [Route("static/image/{year}/{month}/{day}/{filename}")] + public HttpResponseMessage GetImage(string year, string month, string day, string filename) { + try { + var filePath = Path.Combine(_baseStoragePath, "image", year, month, day, filename); + + if (!File.Exists(filePath)) { + return Request.CreateErrorResponse(HttpStatusCode.NotFound, "鏂囦欢涓嶅瓨鍦�); + } + + var response = new HttpResponseMessage(HttpStatusCode.OK); + var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); + response.Content = new StreamContent(stream); + + // 鏍规嵁鏂囦欢鎵╁睍鍚嶈缃瓹ontentType + var ext = Path.GetExtension(filename).ToLower(); + switch (ext) { + case ".jpg": + case ".jpeg": + response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/jpeg"); + break; + case ".png": + response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png"); + break; + case ".gif": + response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/gif"); + break; + case ".bmp": + response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/bmp"); + break; + default: + response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); + break; + } + + return response; + } + catch (Exception ex) { + return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); + } } } - - // 鑾峰彇鍥剧墖鎺ュ彛 - 瀹為檯鐢遍潤鎬佹枃浠跺鐞嗭紝杩欓噷鍙槸绀轰緥 - [HttpGet] - [Route("static/image/{year}/{month}/{day}/{filename}")] - public HttpResponseMessage GetImage(string year, string month, string day, string filename) { - try { - var filePath = Path.Combine(_baseStoragePath, "image", year, month, day, filename); - - if (!File.Exists(filePath)) { - return Request.CreateErrorResponse(HttpStatusCode.NotFound, "鏂囦欢涓嶅瓨鍦�); - } - - var response = new HttpResponseMessage(HttpStatusCode.OK); - var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); - response.Content = new StreamContent(stream); - - // 鏍规嵁鏂囦欢鎵╁睍鍚嶈缃瓹ontentType - var ext = Path.GetExtension(filename).ToLower(); - switch (ext) { - case ".jpg": - case ".jpeg": - response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/jpeg"); - break; - case ".png": - response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png"); - break; - case ".gif": - response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/gif"); - break; - case ".bmp": - response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/bmp"); - break; - default: - response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); - break; - } - - return response; - } - catch (Exception ex) { - return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message); - } - } -} \ No newline at end of file +} -- Gitblit v1.9.1