я начал использовать модуль загрузки nginx (который создает файлы загрузки как/tmp/000121545), но мне нужна скрепка для использования исходного имени файла, сохранив файлы (как /public/avatars/LuckyLuke.jpg)
ранее в параметрах направляющие были передающими просто
"avatar"=>#<File:/tmp/RackMultipart20100413-6151-t3ecq0-0>
никакое исходное имя файла также, таким образом, я задаюсь вопросом, куда от него прибывает в скрепку? я пытался просмотреть сменный код, но это в настоящее время немного слишком сложно для меня.
Браузер отправляет заголовок 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
и метод исходный_файл
.