2013-07-03 3 views
0

Я использую этот фрагмент кода:загрузка файлов с HTTP с помощью Ruby: файл не может быть открыт, может быть поврежден

puts u.host + "/" + u.path 
resp = http.get(u.host + "/" + u.path) 
File.open(filename, "w") do |file| 
    file.write resp.body 
end 

Если я просто введите результат с puts u.host + "/" + u.path в браузере, я могу ясно видеть файл. Однако файл, который загружается, не может быть открыт, потому что он «поврежден». Что является причиной этого? Это потому, что это с сервера HTTPS? Что я могу сделать, чтобы исправить это?

+1

Используйте 'wb' если это двоичный файл – pguardiario

+0

Я планирую использовать это для любого вида типа файла (Требуется ввод данные пользователя для стирания файлов). В настоящее время я тестирую файлы в формате pdf, и оба «w» и «wb» имеют тот же результат, о котором упоминалось в исходном сообщении – dbuss1

+1

. Является ли файл текстовым или двоичным, используйте '' wb '', чтобы сохранить его, если вы хотите, чтобы файл для сохранения в том же формате, который был получен. –

ответ

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