-
원격지 파일 업로드스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7/ASP.NET 2023. 7. 9. 22:29
원컴퓨터에 파일을 저장할 경우 부하분산 처리시 클라이언트가 요청하는 파일이 해당 컴퓨터에 없을 경우가 있으니
파일만 저장하는 컴퓨터를 별도로 만들어 WAS를 통해 파일을 접근하도록 한다
CRUD : 원격지에 있는 컴퓨터를 사용하므로 Server 프로그램과 HTTPClient를 사용하여 http 요청으로 파일 처리 한다
Create HTTPClient를 사용해 파일 업로드를한다
Read 원격지 컴퓨터 IP + server port + 파일 경로
Update : 이미지 파일이 다를경우 원격지 컴퓨터에 파일 삭제 후 다시른 파일 생성
Delete : 원격지에 파일 삭제하기
public async Task<IActionResult> testfun() { string Baseurl = "http://13.125.128.38:80"; string path = "/OSI7Layer.png"; List<ProductModel> EmpInfo = new List<ProductModel>(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); HttpResponseMessage Res = await client.GetAsync(path); if (Res.IsSuccessStatusCode) { // 파일 저장 Res.Content. var EmpResponse = Res.Content.ReadAsStringAsync().Result; EmpInfo = JsonConvert.DeserializeObject<List<ProductModel>>(EmpResponse); } return View(EmpInfo); } } public async Task<IActionResult> Details() { string Baseurl = "http://192.168.95.1:5555/"; List<ProductModel> EmpDetails = new List<ProductModel>(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage Res = await client.GetAsync("api/Employee/GetEmployeeById"); if (Res.IsSuccessStatusCode) { var record = Res.Content.ReadAsStringAsync().Result; EmpDetails = JsonConvert.DeserializeObject<List<ProductModel>>(record); } return View(EmpDetails); } }public async Task Upload(IFormFile file) { string uploadUrl = "http://54.180.26.52/img"; using (var httpClient = new HttpClient()) { using (var form = new MultipartFormDataContent()) { using (var fileStream = file.OpenReadStream()) { var fileName = Path.GetFileName(file.FileName); var fileContent = new StreamContent(fileStream); // 파일 컨텐츠를 MultipartFormDataContent에 추가 form.Add(fileContent, "file", fileName); // 서버에 요청을 보내고 응답을 받음 var response = await httpClient.PostAsync(uploadUrl, form); // 응답 처리 if (response.IsSuccessStatusCode) { Console.WriteLine("파일 업로드 성공"); } else { Console.WriteLine("파일 업로드 실패"); } HttpClient client = new HttpClient(); HttpResponseMessage response2 = await client.GetAsync(uploadUrl); byte[] responseContent = await response2.Content.ReadAsByteArrayAsync(); System.IO.File.WriteAllBytes(@"test.jpg", responseContent); } } } }https://nowonbun.tistory.com/19 - 참고 사이트
'스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7 > ASP.NET' 카테고리의 다른 글
CRUD Base 만들기 (0) 2023.07.09 파일 업로드 원컴퓨터(상품등록) (0) 2023.07.09 ASP.NET - ORM (0) 2023.06.19 ASP.NET - Cookies, Session (0) 2023.06.19 ASP.NET - Routeing (0) 2023.06.19