#http #node.js #mime-types #fs
#http #node.js #mime-типы #fs
Вопрос:
Я пишу скрипт для загрузки файлов с URL-адресов в списке. Проблема, с которой я сталкиваюсь, заключается в том, что URL-адреса не просто указывают на статические файлы, как file.jpg
, они, как правило, указывают на сервлеты, которые возвращают файл.
Что я хочу сделать, так это загрузить файл для каждого URL-адреса и сохранить его с общим именем, затем прочитать его заголовки и переименовать его с соответствующим расширением. (Если нет лучшего способа)
Как я мог это сделать?
Я пытался использовать mime-магию, но она сообщает мне, что файлы без расширений являются каталогами.
Комментарии:
1. на самом деле это должно работать с использованием mime-магии, вы уверены, что путь указан правильно и путь не указывает на каталог? в противном случае вы могли бы использовать инструмент командной строки
file --mime /path/to/file
2. Спасибо, я тупой. Команда wget, которую я использовал, создала каталог и поместила файл внутри этого каталога :/
3. Вы должны поместить свой ответ в качестве ответа, чтобы я мог закрыть проблему
Ответ №1:
Это должно работать с использованием mime-magic
. Вы уверены, что путь указан правильно и путь не указывает на каталог?
В противном случае вы могли бы использовать инструмент командной строки file --mime /path/to/file
Вот как определить расширение файла с помощью mime-magic
:
mime('/path/to/foo.pdf', function (err, type) {
if (err) {
console.error(err.message);
// ERROR: cannot open `/path/to/foo.pdf' (No such file or directory)
} else {
console.log('Detected mime type: %s', type);
// application/pdf
}
});
Примечание: Добавлен комментарий sled в качестве ответа в разделе community-wiki.