# fileupload

업로드 폴더 프로젝트 외부에 두는 이유
블로그 게시판 같은 미니 프로젝트를 하다보면 이미지를 업로드해서 저장해야 할 때가 있다. 이 때 이미지 업로드 파일을 외부에 왜 둬야 하는지 정리했다 !! 프로젝트 내부에 upload 폴더가 있을 경우 Java 로 구현된 프로젝트가 서버에 띄워서 실행을 하면 제일 먼저 .Java 로 된 코드를 컴파일이 된다. 컴파일이 되면 .java -> .class 파일로 바뀐다. 그리고 .class 로 컴파일 된 파일은 Target 이라는 폴더에 이동된다. 이 때 이미지같은 정적파일들도 Target 폴더로 이동된다. 그리고 서버가 Target 폴더에서 파일들을 실행시켜 클라이언트에게 화면을 띄운다. 이 과정을 deploy 배포라고 한다. 
[HTB] Zipping
아... 벨로그 에러로 썻던게 날라가서 다시써야된다... HackTheBox 오픈 베타 시즌2의 11주차 머신으로 중간 난이도로 오픈되었다. 리눅스 머신으로 오픈된 Zipping 머신에 대한 해결 과정을 기록한다. Recon Port Scan 발급된 머신으로 포트 스캔 결과 간단하게 22/tcp, 80/tcp가 오픈된것을 확인할 수 있다. WEB 80/tcp로 접근 시 index.php, upload.php 페이지가 확인되며, 업로드 페이지는 이력서를 업로드받는 기능을 한다. Foothold 위에서 확인된 업로드 페이지의 문구에서는 단일 pdf가 포홤된 zip 파일만 업로드 가능하다고 명시되어있다. 테스트를 위해 한줄 웹쉘
JSP - eclipse
업로드를 실행시켜줄 파일들 이미지 담을 가상의 폴더 Fileupload1 form 필수추가 cos.jar/method=post/enctype="multipart/form-data" 는 업로드 도우미 역할로 필요한 파일 pc에 있는 다른 이미지를 가져와서 업로드 하는 것 / enctype은 fileupload에서 필수 action 경로 save파일에는 업로드 되지 않고 실제 업로드 되는 경로 /Users/sunghyunchoi/Desktop/sist0615/work/jspwork/.metad

파일업로드
multiple : 파일 선택을 여러개 할 수 있다. > enctype="multipart/form-data" 한줄요약 : 위의 코드를 써줘야 파일 첨부가 된다. enctype="multipart/form-data"는 HTML `` 태그의 속성 중 하나입니다. 이 속성은 웹페이지에서 폼을 제출할 때 데이터가 어떤 형태로 인코딩되어 서버로 전송될지를 지정합니다. 여기서 enctype="multipart/form-data"는 특히 파일이나 이미지와 같은 비텍스트 데이터를 폼을 통해 서버로 전송할 때 사용됩니다. 이때 각 부분은 multipart/form-data 인코딩을 사용하여 서버로 전송됩니다. 기본적으로 HTML 폼은 `application/x-w
nestjs fileupload s3 naver cloud aws object bucket nhn cloud express multer
이 코드는 NestJS를 사용하여 파일 업로드와 삭제를 처리하는 UploadController 클래스를 정의한 것입니다. NestJS의 데코레이터와 Interceptor를 활용하여 파일 업로드를 쉽게 구현하고 있습니다. 업로드된 파일은 'temp' 디렉토리에 저장되며, 이후 UploadService에서 실제로 파일을 업로드하고 삭제하는 로직이 구현될 것으로 예상됩니다. FileInterceptor는 NestJS에서 제공하는 파일 업로드를 처리하는 Interceptor 중 하나입니다. Interceptor는 HTTP 요청을 가로채고 조작하는 데 사용되며, 컨트롤러의 엔드포인트로 들어오는 요청을 가로채서 파일 업로드와 같은 추가 작업을 수행할 수 있게 해줍니다. FileInterceptor의 파라미터와 기능을 상세히 설명하겠습니다: 파라미터 설명: 'file': 업로드할 파일이 들어올 필드의 이름을 지정합니다. HTTP 요청의 멀티파트(form-data)
[blazor] 단일 파일업로드 하기
강의제목 : 14. FrmFileUploadTest_Blazor에서 단일 파일 업로드하기 단일 파일 업로드 > wwwroot경로에 파일 업로드 해 보기. 업로드 할 파일 준비. 권한문제로 업로드가 안될 경우 Network Service 사용자 추가하고 write 권한주기. 업로드기능 Service 생성 > service생성전 nuget패키지에서 BlazorInputFile 다운로드. interface 및 service 클래스 생성 IFileUploadService.c

study 04
쿠키(cookie) 쿠키는 사용자의 컴퓨터에 저장이 된다. 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키들을 헤더에 담아서 전송한다. 전송이라는 것은 헤더란 부분과 바디라는 부분으로 두 가지로 나뉘는데 바디는 실제 요청에 대한 데이터들을 가지고 있고 헤더에는 그 요청에 대한 설정을 가지고 있다. 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있습니다. 쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조합니다. 클라이언트에 300개까지 쿠키저장 가능, 하나의 도메인당 20개의 값만 가질 수 있음, 하나의 쿠키값은 4KB까지 저장합니다. Response Header에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있습니다. 쿠키는 사용자가
[NodeJs]:: Multer : 멀티파트 파일 업로드
Multer : 이미지, 동영상 등을 비롯한 여러 가지 파일을 멀티파트 형식으로 업로드할 때 사용하는 미들웨어 > 멀타파트 형식이란? enctype이 multipart/form-data인 폼을 통해서 업로드하는 데이터의 형식 폼으로 데이터 전송 이러한 폼을 통한 업로드는 body-parser로 처리 불가해서 직접 파싱도 어려움 input tag 1개 name 1개 + 파일1개 업로드 const inputNm = "image" app.post("/upload", upload.single(inputNm), (req, res) => { }) req.file에 파일 1개 req.body에 타이틀 값 input tag 1개 name 1개 + 파일 여러개 multiple 업로드 const inputNm = "images" app.post("/upload", upload.array(inputNm), (req, res) => { }) req.file

MockBean(파일업로드)
1. 개요 과제로 Post를 만드는과제가 있었다. 파일 업로드를 해야 하고, 이것을 테스트 하는 코드를 작성하였다. 위와 같은 테스트 코드를 작성했다. file.createNewFile(); 을 해야 했던 이유는, 파일이 없으면 NPE 가 발생했기 때문이다. 하지만 동생의 코드 리뷰를 받고서는 테스트코드는 어떠한 상황에서도 돌아가야 한다는 말을 들었다. 즉, 위의 테스트 코드는 컴퓨터의 용량이 모두 찼을 경우에는 돌아가지 않는다는 이야기였다. 그렇다면 가상으로 파일을 만들고, 저장해야 하는 코드가 필요했다. 열심히 찾아서 File을 Mocking 하는 방법을 찾아 봤지만, 똑같이 NPE가 발생했다. 그럴 수밖에 없는 게 Mock의 기본은 빈 객체를 반환하는 것이기 때문이다. 동생에게 다시 물어봤고
Spring Boot/AJAX 다중 파일 업로드
다중 파일 업로드시 hashmap을 이용하여 ajax를 통해 클라이언트로 정보 전송 controller.java script.js
Spring 다중 파일 업로드
이번에 홈페이지 제작하면서 게시판 파일 업로드와 관련해서 너무 많은 어려움을 겪었기 때문에 그와 관련해서 정리하고, 다시 공부하는 느낌으로 글을 쓰려고 한다. 우선 Spring을 통한 개발이 약 4개월차에 접어들었기 때문에 코드가 난잡할 수 있다는 점을 이해 해주길 바람 파일 전송을 위해서 multipart와 관련된 설정은 다른 블로그에도 많이 있으니 참고 바람 boardWriteForm > 이미지나 영상 등 파일을 전송하기 위해서는 enctype=multipart/form-data로 설정해야함 단일 파일이 아닌 다중 파일의 경우 input type="file" 이후 multiple 옵션을 줘야한다 submit()한 값을 받기 위해서는 입력 데이터 name을 반드시 표시 해줘야한다

[버그리포트] S3FileUpload 시 중복으로 이미지가 view되는 문제
게시글에 이미지 파일을 첨부하여 업로드 하는 기능을 만드는 중 연속해서 게시글 작성 시 이전 파일이 따라 붙어 중복되는 문제가 생겼다. 서버 실행 후 처음엔 잘 작동 하였으나 연속해서 게시글 작성하면 문제가 발생하였다. 처음 이미지 업로드 연속해서 다음 이미지 업로드 만 전송 한다면 요청파라미터의 문자열을 &로 구분해서 전송한다. 반면에 input(type="file")은 바이너리 데이터로 전송해야하고 보통 file만 전송하는 경우는 거의 없다. 따라서, file이 포함된 form 을 전송할 때 multipart를 사용하면 다른 데이터 타입을 구분해서 전송할수 있게 해준다. -> http 요청에 각각의 content-type이 다르기 때문에 multipart가 두 종류의 데이터를 구분해서 하나의 요청body에 넣어준다. 1. pom.xml 의존성 추가 2. servlet-context.xml 3. Controller 4. jsp
TIL 45 - 웹앱 파일 업로드 시 이미지 회전 현상
문제 발생 웹앱에서 파일 업로드 기능을 실제 앱환경 카메라를 이용해 촬영후 업로드시 사진이 뒤집히는 현상 원인 이미지 파일이 클 경우 resize를 하는데 이 과정에서 이미지 파일 방향이 바뀜 해결 방법 이미지 파일의 metadata에 사진의 방향값을 가지고 있는데 resize 전에 원본의 방향 값을 추출해내 미리 정상 방향으로 회전시켜놓음 metadata 추출 시 필요한 라이브러리를 dependency에 추가해줘야함 작업 계획 > 1. 원본 이미지 파일을 InputSteam 클래스로 변환 후 metadata 추출 추출한 meta데이터에서 방향 값(orientation) 추출 원본의 orientation 값에 따라 방향을 설정해줌 이미지 resize 후 S3에 업로드 resizeImageFile(이미지 리사이즈 전체
file upload, download
파일을 여러개 각각 업로드 해야할 때, 업로드 버튼 한 개 업로드 버튼 한 개 이상 조건 : form제출 시 파일 세 개를 같이 제출. 단, 하나의 업로드 버튼에서 세 개의 파일을 업로드하는 것이 아닌, 세 개의 업로드 버튼에서 각각 하나의 파일만 업로드한다. 업로드 설명 -각각의 업로드 할 파일버튼을 생성. -하나의 함수handleFileDownload에서 업로드를 처리. -onChange시 호출되는 함수에 event를 props로 넘겨준다. 넘겨 받은 함수에서 className을 검색하여, 변수를 선언한 객체의 키값이 className과 같으면 키값과 값을 저장한다. -spread 문법을 사용하였다. 다운로드 설명 -파일 다운로드도 업로드와 같다. -다운로드에서 중요한 부분은 blob이다. -파일 이름으로 다운로드하기 위해서는 content-disposition값을 가져와서 디코딩을 필수로 거쳐야한다. -필요한 부분을 정규표현식(reg

FileUpload Multipart 설정 (Tomcat)
✔ Multipart 파일 업로드를 위한 프로젝트 설정 및 Tomcat 설정 1. maven dependency 주입 pom.xml 2. MultipartFilter 선언 및 url-pattern 지정 프로젝트/src/webapp/WEB-INF/web.xml 3. MultipartResolver bean 주입 dispatcher-servlet.xml ※ 파일 업로드 시 오류 발생 오류내용 오류가 난 이유 Tomcat이 multipart/form-data 요청 본문을 분석하지 못하여 경로를 찾지 못함 4. tomcat - context.xml 5. tomcat - web.xml 6. tomcat - server.xml Post 전송 시 데이터 크기 최대 사이즈 지정 > maxPostSize="52428800" // 50MB maxPostSize="-1" // 디
File Upload(image, video)
들어가기 express에서 file upload를 알아본다. 일단은 server에 먼저 올려보고 나중에 aws S3에 저장하고 path를 받아보는걸로 한다. 1.server.js ~ 2. middleware.js express에서 file Upload를 하기 위해서는 multer를 이용한다. > npm i multer ~ 3. routes/userRouter.js ~ 4.routes/videoRouter.js ~ 5. userController.js ~ 6. videoController.js ~ 7. userSchema, videoSchema ~ userSchema와 videoSchema에서 두개가 ref된 부분을 잘 봐두다. userSchema의 videos, videoSchema의 owner 8. edit-profile.pug ~ 9. upload.pug(vide

[Project] 파일 업로드 방식에 대해 (feat. AWS S3)
회원의 프로필 이미지를 업로드하는 기능을 구현하던 도중, 이전에 사용했던 방식의 을 인지하게 되었다. 서버에 파일을 저장하면 발생하는 문제 분산 환경에 적합하지 않다. 서버에 파일을 저장하면 당연하게도 다른 서버가 존재할 경우 해당 서버에서는 파일을 사용할 수가 없기 때문이다. 성능 저하 우려가 있다. 물론 blob으로 DB에 저장할 수도 있다. 하지만 이미지를 불러오기 위해 매번 DB에서 따로 가져와야 하며, 입출력 동안 세션이 유지되기 때문에 DBMS에 부담이 가는 등 성능상 좋은 방법이라고 할 수 없다. > 따라서 실무에서는 이미지를 S3와 같은 별도의 저장소에 저장하고, DB에는 해당 이미지의 경로만을 저장하는 방식을 많이 사용한다. S3를 이용한 이미지 업로드 + dependency 추가 >implementation 'com.amazonaws:aws-java-sdk-s3:1.12.307' +

[개발일지1] 다중 파일 업로드 & 데이터 가져와 출력하기 & List안에 Map저장하기 꺼내기
1. 구현 목표 화면 일단 내가 이 중 구현해야하는 화면은 리뷰 리스트였다. 그냥 리스트 출력이라 쉬울 줄 알고 별 생각없이 지원자 이름에 내 이름을 썼고...나는 이 리스트 때문에 5일을 집에서 소리지르고 노트북을 부여잡고 별 짓을 다하게 된다...(아찔) 그럼 이 리뷰 리스트를 어떻게 구현했는지 기록으로 남긴다.🌟 2. 맞닥트린 문제점 2-1. 하나의 리뷰 묶음에 필요한 dto의 갯수가 여러개 일단 Review라는 dto를 만들어 가져오면 되겠지?라고 생각했으나, 리뷰 dto 외에 user dto(유저의 프로필 이미지 출력), 객실 dto, 리뷰 이미지 dto까지 총 4개의 dto가 필요했다. 2-2. 어떻게 네개의 dto를 가져와서 jsp에서 for문으로 돌리

(Spring) 웹 애플리케이션에 파일 업로드 적용하기
회원 가입 시 첨부된 프로필 이미지를 업로드하는 부분이다. 현재는 로컬 pc를 서버로 만들어 사용하고 있기 때문에 로컬 pc에 저장하는 방식을 먼저 적용해보고, S3에 파일을 업로드하도록 리팩토링을 할 예정이다. Image Entity 하나의 회원은 하나의 프로필 이미지만 가질 수 있기에 1:1 관계로 매핑했다. Controller 을 필드로 가지는 JoinDto로 요청을 받는다. 문자, 파일 등 해당 dto 필드와 일치하는 정보들을 form-data 요