📁 테스트 파일 목록
업로드 기능 검증, 경계값 테스트, 오류 처리 확인용 더미 파일을 제공합니다. 모든 파일 무료, 가입 불필요. MD5 / SHA-256 해시와 curl / wget / PowerShell 다운로드 명령도 제공합니다.
포맷별
🖼️
이미지 파일
PNG / JPG / WebP / GIF / BMP / TIFF / HEIC / AVIF / SVG / ICO
1KB~100MB 다양한 크기. 투과 · 애니메이션 · EXIF 포함
📄
100KB 〜 100MB
단일 페이지 · 다중 페이지 · 대용량 PDF
📦
ZIP
1MB 〜 100MB
압축률 검증 · 대용량 아카이브
📊
CSV
일본어 데이터 포함 · 각종 인코딩
UTF-8 / Shift_JIS / BOM
📋
JSON
10KB 〜 100MB
정형화·압축·다계층 구조
📝
텍스트
일반 TXT
다국어, 긴 텍스트, 다양한 줄바꿈
용도별
📌 모든 테스트 파일에 포함
- ✅ 바이트 단위 정확한 크기 보장
- ✅ MD5 / SHA-256 해시 값 명시
- ✅ curl / wget / PowerShell 명령 예시
- ✅ 직접 링크 배포(CDN / 빠른 다운로드)
관련 참조
📖 자주 걸리는 지점
업로드 한도와 파일 처리 검증에 쓰는, 내용을 알고 있는 더미 파일입니다. 가입 없이 바로 다운로드할 수 있고 MD5 / SHA-256 과 curl 명령을 함께 적어 두었습니다. 다만 이 파일이 통과했다고 해서 안전하다는 증명은 되지 않습니다. 여기서 확인할 수 있는 것은 크기와 형식의 취급까지이며, 확장자 위장·ZIP 폭탄·잘못된 내부 구조에 대한 내성은 따로 검증해야 합니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 10 MB 인데 10 MB 로 도착하지 않는다 | multipart/form-data 는 경계 문자열과 헤더가 붙으므로 요청이 수백 바이트 커집니다. JSON 에 base64 로 넣으면 약 33% 늘어납니다. |
경계를 시험하려면 임계값 파일 의 9.9 / 10.0 / 10.1 MB 를 쓰세요. base64 를 거친다면 실효 한도는 약 3/4 로 잡습니다. |
| 브라우저에서는 통과하는데 서버에서 거부된다 | 한도는 한 곳이 아닙니다. nginx 의 client_max_body_size, PHP 의 upload_max_filesize 와 post_max_size, 그리고 애플리케이션 검증이 각각 독립적으로 걸립니다. |
가장 작은 값이 실효 한도입니다. post_max_size 는 upload_max_filesize 이상으로, 여러 파일이면 합계를 감안해 설정합니다. |
| 확장자로 판정해 위장을 통과시킨다 | .png 로 이름만 바꾼 실행 파일은 확장자 검사도 Content-Type 검사도 그냥 통과합니다. 둘 다 보내는 쪽이 마음대로 쓸 수 있는 값이기 때문입니다. |
선두 바이트 (매직 바이트) 로 판정하세요. PNG 는 89 50 4E 47, PDF 는 25 50 44 46, ZIP 은 50 4B 03 04. 전체 표는 매직 바이트 표. |
| 크기는 충분한데 타임아웃된다 | 한도에 걸리지 않아도 회선이 느리면 전송에 시간이 걸립니다. 끊는 것은 크기 제한이 아니라 시간 제한 쪽입니다. | nginx 의 client_body_timeout 과 fastcgi_read_timeout, PHP 의 max_execution_time 과 max_input_time 을 함께 올립니다. 하나만 올려도 가장 짧은 곳에서 끊깁니다. |
| 깨진 파일이 온다는 전제가 없다 | 통신 끊김이나 전송 오류로, 중간에 잘린 파일이나 헤더가 깨진 파일은 실운영에서 흔히 도착합니다. 많은 구현이 거기서 예외를 던지고 그대로 삼킵니다. | 깨진 파일을 먼저 흘려보내고, 사용자에게 도달하는 오류 메시지가 되어 있는지까지 확인합니다. |
여기 있는 파일이 모두 통과해도 바이러스 검사 결과, 동시 업로드 시 디스크 고갈, 오브젝트 스토리지 쪽 한도는 별개의 이야기입니다. 한도까지 받을 수 있다는 것과 받아도 된다는 것은 다릅니다.