Kebanyakan formulir unggah melaporkan setiap kegagalan dengan kalimat yang sama persis. Satu pesan itu menyembunyikan sedikitnya empat pemeriksaan yang berbeda, dan cara memperbaikinya berbeda-beda.
Pemeriksaan satu: batas byte
Batas yang paling umum, dan satu-satunya yang biasanya terpikirkan orang. Batas ini diukur dalam byte, bukan megapiksel, jadi gambar yang tampak kecil langsung dari ponsel masa kini pun gampang gagal melewatinya.
Perbaiki dengan mengompres ke angka di bawah batas yang disebutkan — bukan tepat di angkanya. Sebagian sistem mengukur permintaan yang sudah dikodekan, bukan filenya, dan unggahan yang dikodekan base64 dalam perjalanan berukuran sekitar sepertiga lebih besar daripada file di penyimpanan. Membidik beberapa persen di bawah batas nyaris tidak memakan biaya apa pun dan menghapus seluruh persoalan itu.
Pemeriksaan dua: batas dimensi
Terpisah dari ukuran file, dan sering tidak didokumentasikan. Sebuah formulir bisa saja menuntut foto yang tidak lebih lebar dari 1200 piksel, sekecil apa pun filenya. Mengompres lebih kuat tidak akan pernah memuaskannya — kamu harus mengubah ukurannya. Kalau formulirnya menyebutkan ukuran tampilan, biasanya ia juga menegakkan batas maksimum di sekitar angka itu.
Pemeriksaan tiga: tipe MIME
Server yang berhati-hati tidak memercayai ekstensi file; mereka membaca beberapa byte pertama dan
mengenali formatnya dari tanda tangannya. Ganti nama PNG menjadi .jpg dan server yang ketat tetap
melihat sebuah PNG, karena begitulah bunyi byte-nya.
Inilah sebabnya mengonversi itu berarti dan mengganti nama tidak. Ini juga sebabnya file yang diekspor dari sebuah aplikasi desain sebagai “JPEG” bisa gagal: sebagian pengekspor menulis varian yang ditolak pustaka di sisi server.
Pemeriksaan empat: ruang warna dan varian pengodean
Lebih jarang, tapi nyata. JPEG CMYK, PNG 16-bit, dan JPEG progresif semuanya file yang sah, tapi sebagian pustaka lama di sisi server menolaknya mentah-mentah.
Pengodean ulang memperbaiki yang bisa dijangkaunya. ToolZool mendekode menjadi piksel 8-bit biasa dan secara bawaan menulis JPEG baseline, jadi PNG 16-bit kembali sebagai 8-bit dan JPEG progresif kembali sebagai baseline — dan justru varian itulah yang paling mungkin diterima server yang rewel. JPEG CMYK adalah kasus yang canggung: ia file untuk alur kerja cetak, bukan untuk web, dan perbaikan yang andal adalah mengekspornya ulang sebagai RGB dari apa pun yang menghasilkannya.
Cara membedakannya
Coba sebuah gambar uji yang sengaja dibuat mungil: beberapa kilobyte, beberapa ratus piksel, JPEG baseline biasa. Kalau gambar itu berhasil diunggah, masalahnya ada di filemu dan sekarang kamu tahu sumbu mana yang harus diubah — mulailah dari pengompres, dan kalau batasnya termasuk ketat, menembus batas 50 KB membahas urutan mengubah hal-hal itu. Kalau gambar ujinya juga gagal, masalahnya ada pada formulirnya, sesinya, atau browsernya, dan pengodean ulang sebanyak apa pun tidak akan menolong.

