我正在 Common Lisp 中开发一个小型 Web 服务器,但在包含像 png 这样的二进制数据时遇到了麻烦。为了读取 png 等静态文件,我创建了一个宏,它将根据用户指定的文件类型添加新的 Ningle 路由。这包括一个读取器函数参数,它将从文件名创建数据。它适用于基于文本的文件,如 css、html、js(text/css、text/html、text/js 等)。
\n如何让 Ningle 读取二进制数据作为内容?
\n这是我的代码
\n(defun read-file (&key (filename "index.html"))\n (let\n ((in (open filename :if-does-not-exist nil))\n (out ""))\n (when in\n (loop for line = (read-line in nil)\n while line do\n (progn\n (setf out (concatenate 'string out (format nil "~a~%" line)))))\n (close in)\n out)))\n\n(defun make-adjustable-string (s)\n (make-array (length s)\n :fill-pointer (length s)\n :adjustable t\n :initial-contents s\n :element-type (array-element-type s)))\n\n(defun read-binary (&key (filename "img/free.png"))\n (let\n ((in …Run Code Online (Sandbox Code Playgroud)