2014-02-09 2 views
0

Guy Теперь я хочу, чтобы загрузить файл с рельсами 4 моя проблема сейчас я не могу проверить расширение файла, прежде чем загрузить егоrails4 расширение файла загрузки ошибка ActionDispatch :: Http :: UploadedFile

Примечание: я могу хорошо загрузите файл, но я хочу получить файл до загрузки

потому что мне нужно расширение на другом шаге в моем приложении.

Я пытался использовать команды

File.extname(params[:Upload]) 

но всегда получал ошибку

can't convert ActionDispatch::Http::UploadedFile into String

также, как я могу получить имя базового файла, прежде чем загрузить его ?? когда я судимый использовать

File.basename(params[:Upload]) 

я получил ту же ошибку

can't convert ActionDispatch::Http::UploadedFile into String 

также, когда я пытался преобразовать имя Стинг я не получить любую вещь

ответ

3

Это потому, что File.extname предпологает имя файла строки, но загруженный файл (ваш params[:upload] - это объект, это экземпляр класса ActionDispatch::Http::UploadedFile (вид временного файла)

Чтобы устранить эту проблему, вам нужно вызвать path свойства на ваш params[:upload] объекте, вроде этого

File.extname(params[:Upload].path) 

Btw, если вы пытаетесь получить тип загруженного файла, я призываю вас вместо этого проверить на params[:Upload].content_type, сложнее обмануть

Смежные вопросы