File check

Check My File

Find out what type of file you have and why it might not work where you need it. Check its format and properties, then choose a tool to convert or fix it.

Selected: {{ selectedDestinationProfile.preset.label }}. Review rules.

{{ destinationLinkNotice }}

Choose a file to check

Check images, PDFs, audio, video, text, ZIP archives, and modern Office files. Available details depend on the format.

or drop one file here
Files stay on your device.
{{ selectedFileName }}
{{ report ? report.file.sizeLabel : 'Preparing file details…' }}
{{ statusMessage }} {{ progress }}%
Try a sample
See a sample report before choosing your own file.
Will this upload?
Copy the rules from the website or form you plan to use. Leave any rule blank when it does not apply.
Upload requirements

Where will you use this file?

Choose a destination to check its published requirements, or enter your own rules below. Browse the sourced rules.

{{ group.label }}
Something else
Published requirements

{{ selectedDestinationProfile.preset.label }}

Reviewed {{ selectedDestinationProfile.preset.reviewedOn }}
Review again by {{ selectedDestinationProfile.preset.nextReviewOn }}

{{ selectedDestinationProfile.preset.summary }}

Effective from {{ selectedDestinationProfile.preset.effectiveFrom }}. Before that date, this is a readiness check.

Applies through {{ selectedDestinationProfile.preset.effectiveUntil }}.

You changed these rules. The check uses your edits. The source links describe the original requirements.
  • {{ rule.kind }} {{ rule.label }} checked here read and check manually

    {{ rule.description }}

    Official source: {{ source.publisher }}
Limits these checks do not cover
  • {{ caveat.text }}

No acceptance guarantee. {{ selectedDestinationProfile.preset.acceptanceDisclaimer }}

Or start with a generic rule example
These examples are not destination requirements. They replace the current rules and can be changed.
File basics

Size uses decimal upload limits: 1 MB is exactly 1,000,000 bytes. Formats are checked against the detected contents, not just the file name.

Leave blank for no size limit. {{ requirementFieldError('maxSize') }}
Separate extensions with commas or spaces. {{ requirementFieldError('allowedFormats') }}
Pixel dimensions

These rules apply to images and videos. Enter only the minimums or maximums the upload form gives you.

{{ requirementFieldError(field.key) }}
Width × height. For a 64-megapixel limit, enter 64000000. {{ requirementFieldError('maxPixels') }}
Aspect ratio

Enter both sides, such as 16 and 9. Tolerance allows small crops or rounding differences.

Required ratio
{{ requirementFieldError('aspectWidth') }} {{ requirementFieldError('aspectHeight') }}
0% means an exact ratio. Maximum 50%. {{ requirementFieldError('aspectTolerance') }}
Image behavior

Use these only when the destination explicitly rejects animation or transparent pixels.

PDF rules

These custom rules require a PDF. Destination presets may skip PDF-only checks for other accepted formats. Text is checked on up to the first five pages.

Leave blank when page count does not matter. {{ requirementFieldError('maxPdfPages') }}
{{ requirementStatusMessage }}

Your file details appear here

See the detected format, file details, and results for your upload requirements, with suggested fixes where available.

Detected from file contents

{{ report.format.label }}

{{ report.format.evidence }}

{{ reportStatusLabel }}

What we could verify

{{ metric.label }}
{{ metric.value }}
Sample of archive entries
  • {{ entry }}

Will this upload?

Fix the highlighted upload rules The file result is paused until every entered rule is valid.
No upload rules are active. Add the limits from the form you plan to use, and this result will update without reading the file again.

Checks and cautions

{{ item.title }}{{ item.detail }}

Choose the right product-image original

If the image is too small, use a larger original. Google advises against enlarging thumbnails. Conversion can also remove AI-source metadata that Google requires.

Review the dated image rules and what this check cannot establish before editing or publishing.

What this check can—and cannot—tell you

Some details can be checked directly. Others need a closer look in the app or website where you will use the file.

Strong evidence

  • Recognized file signatures and container structures
  • Exact byte size and extension comparison
  • Properties decoded by this browser, such as dimensions or duration
  • Text found on the sampled PDF pages

Needs context

  • Whether a particular website will accept the file
  • Whether every PDF page is searchable when only five are sampled
  • Whether an uncommon codec works in another device or app
  • Whether a damaged file can be repaired safely

How to check a file before using it

Choose a file

Select one file or try a sample to see how the check works.

Review the results

Compare the real format, extension, useful properties, and every upload rule you entered.

Fix a problem

Open a suggested tool with your file, then review the changes before downloading.

Check the real format

Compare recognizable file signatures, the browser type, and the filename extension instead of trusting the name alone.

Useful file details

See the properties the browser can verify, such as dimensions, pages, duration, encryption, or searchable PDF text.

Find a tool for the job

Find converters, compressors, and other tools that support your file and the change you need.

Requirement checks

Check common goals such as a size limit, a searchable PDF, or a broadly supported web image.

Original file unchanged

The checker does not repair, convert, rename, or otherwise change the selected file.

Frequently Asked Questions

No. The checker reads the file to show its properties. It does not rename, convert, or change the original.

A file can be renamed without converting its contents. The checker compares recognizable bytes with the extension and browser-provided type to flag likely mismatches.

It reports basic details for any selected file and can inspect additional properties for common images, PDFs, audio, and video when the browser supports that format.

It checks sampled pages for usable text. Little or no extracted text can indicate scanned pages, but mixed documents and decorative text still require a visual check.

No. It explains what could be read and recommends a compatible tool or recovery step. Keep the original file until you have verified any converted result.

No browser tool can guarantee every codec, damaged file, or unusually large document. Each recommendation explains what the tool can change and any known limits.
JPEGConvert logo

Need a hand with your file?

Check the supported formats and settings for your task. If the result isn’t what you expected, our support page can help you find the next step.

Get help | Contact support


{{ statusMessage }}
(function() { const title = document.querySelector('h1'); const actionRegion = document.querySelector('.action-container, .action-body'); if (!title || !actionRegion || title.querySelector('.tool-hero-mark')) return; const path = window.location.pathname.replace(/\/$/, ''); if (!path || path === '/' || path.startsWith('/converters') || path === '/about' || path === '/contact' || path === '/support' || path === '/privacy-policy') { return; } const lowerKey = path.replace(/^\/(video|audio)\//, '').replace(/^\//, '').toLowerCase(); if (!lowerKey) return; let category = 'image'; if (path.startsWith('/video/')) category = 'video'; if (path.startsWith('/audio/')) category = 'audio'; const isUtility = lowerKey.includes('ascii') || lowerKey === 'check-my-file' || lowerKey === 'prepare-for-ai' || lowerKey.includes('resizer') || lowerKey.includes('metadata') || lowerKey.includes('compress') || lowerKey.includes('base64') || lowerKey.includes('background') || lowerKey.includes('crop') || lowerKey.includes('watermark') || lowerKey.includes('remove-pages') || lowerKey.includes('unlock') || lowerKey.includes('protect') || lowerKey.includes('editor') || lowerKey.includes('excel') || lowerKey.includes('upscale') || lowerKey.includes('merge') || lowerKey.includes('split') || lowerKey.includes('ocr') || lowerKey.includes('sign') || lowerKey.includes('trim') || lowerKey.includes('favicon'); if (category === 'image' && isUtility) category = 'tool'; const labelMap = { jpg: 'JPG', jpeg: 'JPEG', png: 'PNG', gif: 'GIF', svg: 'SVG', pdf: 'PDF', heic: 'HEIC', jfif: 'JFIF', webp: 'WEBP', bmp: 'BMP', ico: 'ICO', word: 'DOCX', docx: 'DOCX', excel: 'Excel', xls: 'XLS', xlsx: 'Excel', mp4: 'MP4', mov: 'MOV', avi: 'AVI', mp3: 'MP3', aac: 'AAC', flac: 'FLAC', wav: 'WAV', webm: 'WEBM', cr2: 'CR2', arw: 'ARW', nef: 'NEF', raf: 'RAF' }; const formatLabel = (value) => labelMap[value] || value.toUpperCase(); function getFormatMeta(key) { if (key === 'check-my-file') { return {primary: 'Check', secondary: 'File', connector: 'dot'}; } if (key === 'prepare-for-ai') { return {primary: 'Prepare', secondary: 'AI', connector: 'dot'}; } const directMatch = key.match(/^([a-z0-9]+)-to-([a-z0-9]+)$/); const convertMatch = key.match(/^convert-([a-z0-9]+)-to-([a-z0-9]+)$/); const convertToMatch = key.match(/^convert-to-([a-z0-9]+)$/); if (directMatch) { return {primary: formatLabel(directMatch[1]), secondary: formatLabel(directMatch[2]), connector: 'arrow'}; } if (convertMatch) { return {primary: formatLabel(convertMatch[1]), secondary: formatLabel(convertMatch[2]), connector: 'arrow'}; } if (convertToMatch) { return {primary: 'Any', secondary: formatLabel(convertToMatch[1]), connector: 'arrow'}; } if (key.startsWith('compress-')) { return {primary: 'Compress', secondary: formatLabel(key.replace('compress-', '')), connector: 'dot'}; } if (key.includes('base64') && key.includes('decode')) { return {primary: 'Base64', secondary: 'Decode', connector: 'dot'}; } if (key.startsWith('base64-to-')) { return {primary: 'Base64', secondary: formatLabel(key.replace('base64-to-', '')), connector: 'arrow'}; } if (key.includes('-to-base64')) { const from = key.replace('convert-', '').replace('-to-base64', ''); return {primary: formatLabel(from), secondary: 'Base64', connector: 'arrow'}; } if (key.includes('base64')) { return {primary: 'Base64', secondary: 'Encode', connector: 'dot'}; } if (key.includes('ascii')) { return {primary: 'ASCII', secondary: 'Art', connector: 'dot'}; } if (key.includes('resizer')) { return {primary: 'Resize', secondary: 'Pixels', connector: 'dot'}; } if (key.includes('remove-pages')) { return {primary: 'Remove', secondary: 'Pages', connector: 'dot'}; } if (key.includes('crop') && key.includes('pdf')) { return {primary: 'Crop', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf-editor')) { return {primary: 'Edit', secondary: 'PDF', connector: 'dot'}; } if (key.includes('unlock')) { return {primary: 'Unlock', secondary: 'PDF', connector: 'dot'}; } if (key.includes('protect')) { return {primary: 'Protect', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf') && key.includes('metadata')) { return {primary: 'Clean', secondary: 'Metadata', connector: 'dot'}; } if (key.includes('metadata')) { return {primary: 'EXIF', secondary: 'Clean', connector: 'dot'}; } if (key.includes('background')) { return {primary: 'Remove', secondary: 'Background', connector: 'dot'}; } if (key.includes('crop')) { return {primary: 'Crop', secondary: 'Image', connector: 'dot'}; } if (key.includes('watermark')) { return {primary: 'Watermark', secondary: 'Image', connector: 'dot'}; } if (key.includes('upscale')) { return {primary: 'Upscale', secondary: 'Image', connector: 'dot'}; } if (key.includes('merge')) { return {primary: 'Merge', secondary: 'PDF', connector: 'dot'}; } if (key.includes('split')) { return {primary: 'Split', secondary: 'PDF', connector: 'dot'}; } if (key.includes('ocr')) { return {primary: 'OCR', secondary: 'PDF', connector: 'dot'}; } if (key.includes('sign')) { return {primary: 'Sign', secondary: 'PDF', connector: 'dot'}; } if (key.includes('trim')) { return {primary: 'Trim', secondary: 'Video', connector: 'dot'}; } return {primary: 'Tool', secondary: '', connector: 'dot'}; } function getIconClass(key, categoryName) { const toFormat = key.split('-to-')[1]; if (key === 'check-my-file') return 'bi-file-earmark-check'; if (key === 'prepare-for-ai') return 'bi-ui-checks-grid'; if (key.includes('ascii')) return 'bi-textarea-t'; if (key.includes('resizer')) return 'bi-aspect-ratio'; if (key.includes('metadata')) return 'bi-shield-slash'; if (key.includes('compress')) return 'bi-file-earmark-zip'; if (key.includes('base64')) return 'bi-journal-code'; if (key.includes('background')) return 'bi-scissors'; if (key.includes('crop')) return 'bi-crop'; if (key.includes('watermark')) return 'bi-type'; if (key.includes('remove-pages')) return 'bi-trash'; if (key.includes('unlock')) return 'bi-unlock'; if (key.includes('protect')) return 'bi-lock'; if (key.includes('editor')) return 'bi-pencil-square'; if (key.includes('excel')) return 'bi-file-earmark-spreadsheet'; if (key.includes('upscale')) return 'bi-arrows-angle-expand'; if (key.includes('merge')) return 'bi-files'; if (key.includes('split')) return 'bi-scissors'; if (key.includes('ocr')) return 'bi-file-earmark-text'; if (key.includes('sign')) return 'bi-pen'; if (key.includes('trim')) return 'bi-scissors'; if (toFormat) { switch (toFormat) { case 'jpg': case 'jpeg': return 'bi-filetype-jpg'; case 'png': return 'bi-filetype-png'; case 'gif': return 'bi-filetype-gif'; case 'svg': return 'bi-filetype-svg'; case 'pdf': return 'bi-filetype-pdf'; case 'word': case 'docx': return 'bi-file-earmark-word'; case 'xls': case 'xlsx': case 'excel': return 'bi-file-earmark-spreadsheet'; case 'heic': return 'bi-filetype-heic'; case 'webp': return 'bi-filetype-webp'; case 'bmp': return 'bi-filetype-bmp'; case 'ico': return 'bi-file-image'; case 'mp4': return 'bi-filetype-mp4'; case 'mov': return 'bi-filetype-mov'; case 'mp3': return 'bi-filetype-mp3'; case 'wav': return 'bi-filetype-wav'; case 'avi': return 'bi-filetype-avi'; default: return 'bi-file-earmark-image'; } } if (categoryName === 'video') return 'bi-film'; if (categoryName === 'audio') return 'bi-music-note-beamed'; if (categoryName === 'image') return 'bi-file-earmark-image'; return 'bi-gear'; } const formatMeta = getFormatMeta(lowerKey); const connectorIcon = formatMeta.connector === 'arrow' ? 'bi-arrow-right-short' : 'bi-dot'; const iconClass = getIconClass(lowerKey, category); const mark = document.createElement('span'); mark.className = `tool-hero-mark converter-mark converter-mark--${category}`; const iconWrap = document.createElement('span'); iconWrap.className = 'converter-mark__icon'; const icon = document.createElement('i'); icon.className = iconClass; iconWrap.appendChild(icon); mark.appendChild(iconWrap); const formatWrap = document.createElement('span'); formatWrap.className = 'converter-format'; const primary = document.createElement('span'); primary.className = 'format-pill'; primary.textContent = formatMeta.primary; formatWrap.appendChild(primary); if (formatMeta.secondary) { const connector = document.createElement('span'); connector.className = 'format-connector'; const connectorIconEl = document.createElement('i'); connectorIconEl.className = connectorIcon; connector.appendChild(connectorIconEl); formatWrap.appendChild(connector); const secondary = document.createElement('span'); secondary.className = 'format-pill format-pill--secondary'; secondary.textContent = formatMeta.secondary; formatWrap.appendChild(secondary); } mark.appendChild(formatWrap); title.classList.add('tool-hero-title'); title.prepend(mark); })();