Что я хочу сделать:
возьмите вывод (drakma:http-request "someURL.jpg")
и запишите его в файл. Вывод состоит из байтового массива.
Что я придумал:
(with-open-file (my-stream "thing.jpg"
:direction :output
:element-type 'binary
:if-does-not-exist :create
:if-exists :supersede)
(let ((content (drakma:http-request "someURL.jpg")))
(loop for i across content do
(write-byte i my-stream))))
Я получаю ошибку:
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING
{1002978FB1}>:
could not find any output routine for :FULL buffered BINARY
Я использую SBCL 1.0.49.
Если вам нужна какая-либо другая информация или мой вопрос неясен, пожалуйста, спросите:).
EDIT:
Проблема в том, что: element-type, он должен быть «unsigned-byte».
Вы можете найти информацию о различных возможностях: element-type over в Common Lisp Hyper Spec в open . Кроме этого все правильно.
PS. Я не мог ответить как ответ, потому что моя репутация слишком низкая.