где от скрепки получает название исходного файла?

я начал использовать модуль загрузки nginx (который создает файлы загрузки как/tmp/000121545), но мне нужна скрепка для использования исходного имени файла, сохранив файлы (как /public/avatars/LuckyLuke.jpg)

ранее в параметрах направляющие были передающими просто

 "avatar"=>#<File:/tmp/RackMultipart20100413-6151-t3ecq0-0> 

никакое исходное имя файла также, таким образом, я задаюсь вопросом, куда от него прибывает в скрепку? я пытался просмотреть сменный код, но это в настоящее время немного слишком сложно для меня.

10
задан Pavel K. 13 April 2010 в 15:54
поделиться

1 ответ

Браузер отправляет заголовок http с именем файла. ("Content-Disposition: filename = original_file.jpg")

Rails делает это доступным как метод экземпляра объекта временного файла: params [: avatar] .original_filename , и скрепка использует это.

Более подробно, Rack анализирует составную форму в Rack :: Utils :: Multipart :: UploadedFile и помещает хэш в параметры, которые включают : tempfile и : filename . Затем появляется ActionDispatch :: Http :: Upload, который заменяет этот хэш объектом File (значение: tempfile), расширяя его модулем ActionDispatch :: Http :: UploadedFile, который добавляет переменную экземпляра для original_path и метод исходный_файл .

19
ответ дан 3 December 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: