ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 원격지 파일 업로드
    스마트팩토리 개발자 교육(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

    댓글

Designed by Tistory.