ตัวตรวจสอบประเภท MIME ของไฟล์

5 จาก 2 การให้คะแนน
ชื่อ
ขนาด
ประเภท
วันที่แก้ไขล่าสุด

ตัวตรวจสอบประเภท MIME ของไฟล์เป็นเครื่องมือฟรีที่แสดงประเภท MIME พร้อมรายละเอียดของไฟล์ เช่น ชื่อ ขนาด และวันที่แก้ไขล่าสุด

ตัวตรวจสอบประเภท MIME บอกอะไรได้บ้าง?

ตัวตรวจสอบประเภท MIME บอกว่าไฟล์ถูกระบุชนิดอย่างไรเมื่อต้องรับส่งระหว่างเบราว์เซอร์ เซิร์ฟเวอร์ โปรแกรมอีเมล และซอฟต์แวร์อื่นๆ ประเภท MIME ซึ่งปัจจุบันมีชื่ออย่างเป็นทางการว่า media type โดยทั่วไปประกอบด้วยประเภทระดับบนและประเภทย่อย คั่นด้วยเครื่องหมายทับ เช่น application/pdf, image/png หรือ text/plain

ผลลัพธ์นี้มีประโยชน์เมื่อต้องหาสาเหตุที่ระบบปฏิเสธการอัปโหลด ตรวจสอบไฟล์ก่อนนำไปใช้งาน หรือพิจารณาไฟล์ที่ได้รับจากบุคคลที่สาม ตัวอย่างเช่น API อาจยอมรับ image/png แต่ปฏิเสธไฟล์ที่ถูกระบุเป็น application/octet-stream แม้ชื่อไฟล์จะลงท้ายด้วย .png ก็ตาม

นามสกุลไฟล์และประเภท MIME มีความเกี่ยวข้องกัน แต่ไม่ใช่สิ่งเดียวกัน นามสกุลเป็นส่วนหนึ่งของชื่อไฟล์ ส่วนประเภท MIME คือข้อมูลเมตาที่ซอฟต์แวร์กำหนดหรืออนุมานขึ้น ระบบปฏิบัติการและเบราว์เซอร์ต่างกันอาจระบุประเภทของไฟล์ที่พบไม่บ่อยหรือไม่มีนามสกุลไม่เหมือนกัน

จะตรวจสอบประเภท MIME ของไฟล์ได้อย่างไร?

เลือกไฟล์ในช่อง ไฟล์ แล้วตรวจสอบรายละเอียดที่แสดง หน้านี้มีช่อง ประเภท, ขนาด, ชื่อ และ วันที่แก้ไขล่าสุด

  1. เลือกไฟล์เดียวกับที่มีปัญหาในขั้นตอนอัปโหลด คำขอ API หรือกระบวนการนำไปใช้งาน
  2. เปรียบเทียบ ประเภท กับ media type ที่ระบบปลายทางกำหนด
  3. ตรวจสอบ ชื่อ ว่ามีนามสกุลหายไป ซ้ำกัน หรือชวนให้เข้าใจผิดหรือไม่
  4. ดู ขนาด เพื่อยืนยันว่าไฟล์ไม่ว่างเปล่าหรือมีขนาดใหญ่ผิดปกติ
  5. ตรวจสอบ วันที่แก้ไขล่าสุด หากต้องแยกว่าไฟล์ทรัพยากรหลายสำเนาเป็นสำเนาใด

ควรใช้ไฟล์ตัวอย่างที่เป็นตัวแทนของไฟล์จริง แทนที่จะสรุปว่าไฟล์ทุกไฟล์ที่มีนามสกุลเดียวกันจะมีข้อมูลเมตาเหมือนกัน

ควรอ่านรายละเอียดไฟล์ที่ได้อย่างไร?

ให้มองประเภท MIME เป็นการจัดประเภทที่ซอฟต์แวร์ใช้ แล้วใช้รายละเอียดอื่นๆ ตรวจสอบว่าคุณเลือกไฟล์ที่ต้องการจริงหรือไม่ ประเภทปกติจะอยู่ในรูป type/subtype โดยนิยมใช้ตัวพิมพ์เล็ก แม้ media type จะไม่แยกแยะตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ก็ตาม

  • ประเภท อาจเป็นค่าที่เฉพาะเจาะจง เช่น application/json ค่าทั่วไป เช่น application/octet-stream หรืออาจไม่มีค่าที่เป็นประโยชน์ หากสภาพแวดล้อมนั้นระบุประเภทไฟล์ไม่ได้
  • ชื่อ ยังคงมีข้อมูลบอกใบ้จากนามสกุล เช่น .csv, .jpeg หรือ .tar.gz แต่นามสกุลเพียงอย่างเดียวยืนยันเนื้อหาภายในไม่ได้
  • ขนาด ช่วยให้พบไฟล์ส่งออกที่มีขนาดศูนย์ไบต์ การดาวน์โหลดที่ไม่สมบูรณ์ หรือไฟล์จากบิลด์ที่ไม่ถูกต้อง
  • วันที่แก้ไขล่าสุด ช่วยระบุสำเนาในเครื่องที่ล้าสมัย แต่ข้อมูลนี้เป็นเพียงข้อมูลเมตา ไม่ใช่หลักฐานที่เชื่อถือได้ว่าใครเป็นผู้สร้างหรือเผยแพร่ไฟล์

รายละเอียดเหล่านี้ช่วยให้เห็นความไม่สอดคล้องกัน ไม่ใช่ข้อผิดพลาดด้านไวยากรณ์ สัญญาณเตือนที่พบบ่อย ได้แก่ ไฟล์ชื่อ .json แต่มีประเภทเป็น text/plain, รูปภาพที่ถูกระบุเพียงว่าเป็น application/octet-stream หรือไฟล์ที่มีขนาดศูนย์ทั้งที่ควรมีเนื้อหา

วันที่แก้ไขต้องพิจารณาตามบริบทด้วย การคัดลอก ดาวน์โหลด แตกไฟล์ หรือสร้างไฟล์ใหม่อาจทำให้ค่าประทับเวลาเปลี่ยนไป หากอีกระบบหนึ่งระบุวันที่เป็นค่า epoch เครื่องมือการประทับเวลา Unix เป็นวันที่จะช่วยให้เปรียบเทียบกับวันที่และเวลาในรูปแบบทั่วไปได้ง่ายขึ้น

ตัวอย่างการตรวจสอบรายละเอียดไฟล์

ลองพิจารณาไฟล์ PDF ที่ส่งออกมาและทราบข้อมูลเมตาอยู่แล้ว ตัวอย่างนี้ใช้ไฟล์ชื่อ invoice-1042.pdf ซึ่งมีขนาด 48,120 ไบต์ และมี media type เป็น application/pdf ผลลัพธ์ที่เกี่ยวข้องควรแสดงชื่อและขนาดไฟล์ตรงกัน โดยแสดง application/pdf ในช่อง ประเภท และแสดงวันที่แก้ไขที่บันทึกไว้ของไฟล์ในช่อง วันที่แก้ไขล่าสุด

ต่อมาลองพิจารณาไฟล์ที่ไม่มีนามสกุลชื่อ LICENSE ชื่อนี้ไม่มีส่วนต่อท้ายให้ซอฟต์แวร์ใช้อนุมานรูปแบบไฟล์ ดังนั้นประเภทอาจว่าง เป็นค่าทั่วไป หรือแตกต่างไปตามสภาพแวดล้อม แม้ไฟล์จะมีข้อความที่อ่านได้ก็ตาม ผลลัพธ์เช่นนี้ไม่ได้หมายความว่าไฟล์เสียหาย

ช่องว่าง เครื่องหมายวรรคตอน ตัวเลข ตัวอักษรที่มีเครื่องหมายกำกับเสียง และอักขระที่ไม่ใช่อักษรละตินในชื่อไฟล์ไม่ทำให้ไวยากรณ์ของ MIME เปลี่ยนไป ไฟล์ชื่อ café-menu-2026.pdf ยังคงมีประเภทเป็น application/pdf ได้ อักขระเหล่านี้อาจทำให้เกิดปัญหาด้านพาธ การเข้ารหัส หรือความเข้ากันได้ในระบบรุ่นเก่า แต่ปัญหาเหล่านั้นเกี่ยวข้องกับการจัดการชื่อไฟล์

เมื่อใดที่การตรวจสอบประเภท MIME ยังไม่เพียงพอ?

การตรวจสอบประเภท MIME ยังไม่เพียงพอ หากประเด็นอยู่ที่ความปลอดภัย การตรวจสอบความถูกต้องของเนื้อหา หรือการตอบกลับ HTTP จริงจากเซิร์ฟเวอร์ ข้อมูลเมตา MIME อาจไม่มีอยู่ ไม่ถูกต้อง หรือจงใจทำให้เข้าใจผิด จึงไม่ควรถือเป็นหลักฐานว่าไฟล์ปลอดภัย

เมื่อตรวจสอบก่อนนำไฟล์ไปใช้งาน ให้ดูส่วนหัว Content-Type ที่เว็บเซิร์ฟเวอร์ส่งกลับมาควบคู่กับรายละเอียดของไฟล์ในเครื่อง การกำหนดค่าเซิร์ฟเวอร์ CDN หรือโค้ดแอปพลิเคชันอาจส่งค่าที่ต่างจากค่าซึ่งเชื่อมโยงกับไฟล์ต้นฉบับได้ ตัวแยกวิเคราะห์ URL อาจช่วยแยกส่วนและตรวจสอบ URL ของไฟล์ทรัพยากรก่อนดูส่วนหัวการตอบกลับผ่านเครื่องมือสำหรับนักพัฒนาในเบราว์เซอร์หรือไคลเอนต์แบบบรรทัดคำสั่ง

สำหรับการอัปโหลดที่มีความสำคัญด้านความปลอดภัย ให้ตรวจสอบโครงสร้างไฟล์หรือลายเซ็นไบต์ที่ระบบรู้จักบนเซิร์ฟเวอร์ กำหนดขีดจำกัดขนาด และเก็บไฟล์ที่อัปโหลดไว้นอกตำแหน่งที่เรียกใช้งานได้ ตัวตรวจสอบ MIME ไม่สามารถใช้แทนการสแกนมัลแวร์หรือการตรวจสอบความถูกต้องเฉพาะรูปแบบได้

นอกจากนี้ ไม่จำเป็นต้องตรวจซ้ำหากไฟล์ไม่เปลี่ยนแปลงและระบบปลายทางยอมรับไฟล์เดียวกันนั้นแล้ว การตรวจสอบยังแทบไม่มีประโยชน์สำหรับไฟล์ที่ใช้เฉพาะในกระบวนการภายในเครื่องซึ่งควบคุมได้และไม่สนใจข้อมูลเมตา MIME ส่วนการตอบกลับจากเว็บที่ใช้งานจริง การตรวจสอบส่วนหัว HTTP ของระบบจริงมีความเกี่ยวข้องมากกว่าการตรวจสำเนาในเครื่องซ้ำๆ

คำถามที่พบบ่อย

ทำไมไฟล์ JPEG จึงใช้ image/jpeg แทน image/jpg?

image/jpeg คือ media type ที่จดทะเบียนไว้สำหรับรูปภาพ JPEG ส่วนนามสกุล .jpg เกิดจากข้อจำกัดด้านความยาวของชื่อไฟล์ในระบบรุ่นเก่า แต่ไม่ได้ทำให้เกิด media type แยกต่างหากในชื่อ image/jpg

ประเภท MIME ระบุการเข้ารหัสอักขระได้ไหม?

ได้ media type ที่อิงข้อความบางประเภทใส่พารามิเตอร์เพิ่มเติมได้ เช่น text/html; charset=utf-8 แต่ค่าประเภทของไฟล์ในเครื่องอาจไม่มีพารามิเตอร์เหล่านี้ เพราะการระบุการเข้ารหัสอักขระมักต้องตรวจสอบเนื้อหา หรืออาศัยข้อมูลจากระบบที่ให้บริการไฟล์

เปลี่ยนนามสกุลไฟล์แล้วเนื้อหาข้างในจะเปลี่ยนไหม?

ไม่ การเปลี่ยนชื่อ data.csv เป็น data.txt เปลี่ยนเพียงชื่อไฟล์ แต่ไม่ได้แปลงข้อมูลไบต์ ซอฟต์แวร์อาจกำหนดข้อมูลเมตาใหม่หลังเปลี่ยนชื่อ ด้วยเหตุนี้จึงควรตรวจสอบทั้งนามสกุลและรูปแบบจริงของไฟล์

application/octet-stream ถือเป็นข้อผิดพลาดไหม?

ไม่ ค่านี้เป็นประเภททั่วไปสำหรับข้อมูลไบนารีแบบใดก็ได้ และมักใช้เมื่อไม่มี media type ที่เฉพาะเจาะจงกว่า ระบบปลายทางบางแห่งปฏิเสธค่านี้เพราะกำหนดให้ต้องระบุประเภทที่อนุญาตอย่างชัดเจน จึงควรเปรียบเทียบกับข้อกำหนดของระบบอัปโหลดหรือ API

ใช้ตัวตรวจสอบกับไฟล์ลับได้ไหม?

ไม่สามารถยืนยันได้ว่าการประมวลผลเกิดขึ้นที่ใด อย่าสันนิษฐานตำแหน่งที่ใช้ประมวลผล หากไฟล์มีข้อมูลลับ ข้อมูลส่วนบุคคล หรือข้อมูลที่อยู่ภายใต้ข้อบังคับ ให้ใช้ไฟล์ตัวอย่างที่ไม่มีข้อมูลอ่อนไหว หรือใช้วิธีตรวจสอบภายในเครื่องที่ได้รับอนุมัติ

ทำไมประเภทที่เบราว์เซอร์แสดงจึงไม่ตรงกับ Content-Type ของเซิร์ฟเวอร์?

เพราะข้อมูลมาจากคนละแหล่ง ข้อมูลเมตาของไฟล์ในเครื่องอาจขึ้นอยู่กับเบราว์เซอร์หรือระบบปฏิบัติการ ส่วน HTTP Content-Type มาจากการกำหนดค่าของเซิร์ฟเวอร์ แอปพลิเคชัน หรือ CDN เมื่อตรวจหาสาเหตุของพฤติกรรมในเบราว์เซอร์ ปัญหาการดาวน์โหลด หรือไฟล์ทรัพยากรที่นำไปใช้งานแล้ว ให้ตรวจสอบการตอบกลับจากระบบจริง

เครื่องมือยอดนิยม