De flesta uppladdningsformulär rapporterar varje misslyckande med samma mening. Bakom det enda meddelandet döljer sig minst fyra olika kontroller, och lösningen skiljer sig för var och en.
Kontroll ett: byte-gränsen
Den vanligaste gränsen, och den enda folk brukar tänka på. Den mäts i byte, inte i megapixlar, så en bild som ser liten ut men kommer direkt från en modern telefon kan lätt underkännas.
Lös det genom att komprimera till ett tal under den angivna gränsen — inte precis på den. Vissa system mäter den kodade förfrågan i stället för filen, och en uppladdning som base64-kodas på vägen ut är ungefär en tredjedel större än filen på disken. Att sikta några procent under gränsen kostar dig nästan ingenting och tar bort hela frågan.
Kontroll två: måttgränsen
Skild från filstorleken, och ofta odokumenterad. Ett formulär kan kräva ett foto som inte är bredare än 1 200 pixlar, hur liten filen än är. Att komprimera hårdare kommer aldrig att räcka — du måste ändra storleken. Anger formuläret en visningsstorlek brukar det också kräva ett maxvärde nära den.
Kontroll tre: MIME-typen
Servrar som är noggranna litar inte på filändelsen; de läser de första byten och identifierar
formatet utifrån dess signatur. Döp om en PNG till .jpg och en strikt server ser fortfarande en
PNG, eftersom det är vad byten säger.
Det är därför konvertering hjälper och omdöpning inte gör det. Det är också därför en fil som exporterats som ”JPEG” ur ett designprogram kan underkännas: vissa exportfunktioner skriver en variant som serverns bibliotek vägrar ta emot.
Kontroll fyra: färgrymd och kodningsvariant
Ovanligare, men fullt verkligt. CMYK-JPEG:er, 16-bitars PNG:er och progressiva JPEG:er är alla giltiga filer som vissa äldre serverbibliotek nekar rakt av.
Omkodning löser dem den kommer åt. ToolZool avkodar till vanliga 8-bitars pixlar och skriver baseline-JPEG som standard, så en 16-bitars PNG kommer tillbaka som 8-bitars och en progressiv JPEG kommer tillbaka som baseline — båda de varianter som en kinkig server är mest benägen att acceptera. CMYK-JPEG är det besvärliga fallet: det är en fil ur ett tryckflöde snarare än ett webbflöde, och den pålitliga lösningen är att exportera om den som RGB ur programmet som skapade den.
Så skiljer du dem åt
Prova en medvetet liten testbild: några kilobyte, några hundra pixlar, vanlig baseline-JPEG. Går den igenom ligger problemet i din fil, och du vet nu vilken axel du ska ändra på — börja med komprimeringen, och är gränsen snäv går att klara en gräns på 50 KB igenom i vilken ordning du bör ändra saker. Underkänns även testbilden ligger problemet i formuläret, sessionen eller webbläsaren, och ingen mängd omkodning i världen hjälper.

