Для отправки файла, если он сохранен на диске, нужно лишь перед путем поставить "@", и курл сам определит, что это файл, выставит заголовки и т.д. А как отправить файл, если его нет на диске? Т.е. сначала файл скачивается с сайта в переменную, а затем его нужно отправить на другой сайт. Можно через временное сохранение на диске, но всё же немного не то. Можно через обычные сокеты, формируя заголовок и тело запроса, но хочется всё же через курл, ибо влом код переписывать.