Challenge 1: Fix the Upload Command — Possible Solution ==================================================================== WHAT'S WRONG: -d "file=@photo.jpg" does NOT upload the file's actual contents. -d treats its argument as a literal string (or, at most, form-urlencoded data) — it does NOT interpret the @photo.jpg syntax as "read this file's contents," the way -F does. The server receives the literal text "file=@photo.jpg" as form-urlencoded body data, not the photo's binary contents wrapped in a proper multipart body — which explains exactly why the file arrives corrupted or unusable: there never was a real file upload in the first place, just a string that happens to contain an @ symbol and a filename. THE FIX: curl -X POST https://api.example.com/upload -F "file=@photo.jpg" Using -F instead of -d builds a genuine multipart/form-data body, where @photo.jpg IS correctly interpreted as "read this file from disk and include its actual contents as this field's value" — exactly the distinction the chapter draws between -d and -F building fundamentally different body formats, not interchangeable syntax for the same idea.