使用 Compojure、Hiccup 和 Ring 上传文件

2024-05-19

要将文件上传到我用 Clojure 编写的服务器,我需要一个如下所示的客户端表单:

<form action="/file" method="post" enctype="multipart/form-data">
<input name="file" type="file" size="20" />
<input type="submit" name="submit" value="submit" />

但是我找不到 Hiccup 或 Compojure 的文档来创建这样的表单。我的样本看起来像这样:

[:h2 "Choose a file to upload"]
:form {:method "post" :action "/upload"}
[:input.math {:type "text" :name "a"}] [:span.math " + "]
[:input.math {:type "text" :name "b"}] [:br]

所以我的问题是哪里有文档可以找到如何修改它以制作上传文件的表单?


Compojure 的文件上传支持可以在multipart-params环形中间件。以下是一些如何使用它的示例:

  • https://gist.github.com/562624/1df418e4851e68952fc466713f377df2e653afdb https://gist.github.com/562624/1df418e4851e68952fc466713f377df2e653afdb
  • http://www.prodevtips.com/2010/12/19/file-uploads-with-clojure-ring-and-compojure/ http://www.prodevtips.com/2010/12/19/file-uploads-with-clojure-ring-and-compojure/

经常查看 Ring 中间件文档,它充满了很棒的代码!

Update: 第一次没看清楚你的问题!要生成这样的表单:

<form action="/file" method="post" enctype="multipart/form-data">
  <input name="file" type="file" size="20" />
  <input type="submit" name="submit" value="submit" />
</form>

这应该够了吧:

[:form {:action "/file" :method "post" :enctype "multipart/form-data"}
 [:input {:name "file" :type "file" :size "20"}]
 [:input {:type "submit" :name "submit" :value "submit"]]

我是凭记忆做的,所以未经测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Compojure、Hiccup 和 Ring 上传文件 的相关文章

  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • IFormFile 未由 dropzone uploadMultiple 请求填充

    我遇到的问题是 IFormFile 列表没有填充给定的文件 但是当我调用 HttpContext Request Form Files 时然后我就可以访问这些文件了 我更喜欢使用 IFormFile 因为它似乎是新的 Dotnet core
  • 使用 Servlet 3.0 上传文件时 request.getParameter() 是否仍然有效?

    我刚刚读过这个很好的答案 https stackoverflow com questions 2422468 how to upload files in jsp servlet 2424824 2424824来自 BalusC 关于如何使
  • Nuxt 3文件上传并存储在项目本地

    我想创建一个简单的 Nuxt 3 文件上传实现 将文件存储在本地 Nuxt 项目的文件夹中 在 PHP 中 服务器端代码非常简单直接 但我发现在 Nuxt 3 服务器端做同样的事情很困难 First npm install formidab
  • 使用 swank-clojure 攻击 Clojure 库的工作流程

    Clojure 库的黑客攻击有典型的工作流程吗 假设我的应用程序 Foo 依赖于第三方库 Bar 该库是从存储库获取的 并通过以下方式包含在项目 Foo 中lein deps 然后 假设我想破解 Bar 库 所以我从 github 克隆它
  • 如何在 Compojure 中使用 lib-noir 有状态会话

    我想我这里有一个相当简单的问题 但我已经看这个屏幕太久了 所以我正在尝试 但失败了 让有状态会话在 Compojure 中工作 refheap代码粘贴is here https www refheap com paste 11161 你可以
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • 在 Android 上运行 Java 字节码 - DalvikVM 之上的 Sun JVM

    由于 java 实现 OpenJDK 和Android的虚拟机DalvikVM是开源的 因此必须可以在Google的DalvikVM之上实现Sun的JavaVM 这将使运行基于 JVM 的应用程序和语言成为可能 Clojure Jython
  • 在 Clojure 中的函数上使用“apply”时,如何显式指定名称空间?

    这里的 graph 是高阶函数 它返回一个在其范围内设置了配置的函数 ns bulbs neo4jserver graph defn out1 Test func that simply returns out1 config out1 d
  • Clojure:对于 n 维

    Clojure 中的函数for可用于迭代嵌套序列 想象一个具有 x y 和 z 轴的 3D 空间 for x range 10 y range 5 z range 2 x y z 上面的代码将生成一个向量序列 表示长方体内所有可能的位置 当
  • 为什么 CouchDB 使用仅追加 B+ 树而不是 HAMT

    我正在阅读数据结构 尤其是不可变的数据结构 例如仅追加 B 树 http guide couchdb org draft btree html用于 CouchDB 和哈希数组映射 trie http en wikipedia org wik
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 如何将函数设置为 multer 上的限制参数?

    在这个问题之后 我可以使用 multer 和单个 html 表单上传不同文件夹中的多个文件吗 https stackoverflow com questions 39726862 cani upload many files in diff
  • 在 Clojure 中检测操作系统

    是否有与 Common Lisp 相当的东西 features 在Clojure中 这样你就可以检测操作系统和其他环境配置 或者我只是通过 Java API 来实现这一点 可能使用Java API 这很容易 没有必要重新发明轮子 user
  • 浏览器显示 clojure 环中不存在 access-control-allow-origin 标头

    我通过客户端浏览器向服务器发出请求 如下所示https example com bar https example com bar 但出现错误 Access to XMLHttpRequest at https example com ba
  • IE8 post 文件定位 iframe,到达服务器时为空

    我有一个表格 只有一个input file在其中 表单的目标是一个命名的iframe 当用户选择一个文件时 它会自动将表单发送到服务器 这适用于 IE10 firefox chrome 但在 IE8 中 当 IE8 发布表单时 我的控制器方
  • Clojure 为什么命名为 Clojure

    为什么该语言的名称是 Clojure 我用谷歌搜索了一下 在 clojure 中询问 到目前为止 还没有运气 Rich Hickey 他是 Clojure 的设计者 对此的评论是 wiki 上的第一个参考链接 您是否根据以 closure
  • 如何通过控制台应用程序将文件上传到 OneDrive?

    我正在尝试将文件上传到OneDrive http msdn microsoft com onedrive从控制台应用程序内 深入谷歌后我发现Live SDK http msdn microsoft com en us library dn6
  • Clojure 宏总是泄漏吗?

    如果你读过这个问题宏 gt 带有匿名函数 https stackoverflow com questions 10740265 macro with anonymous functions 10740411 comment13981517
  • 用纯函数式语言保持状态

    我正在尝试弄清楚如何执行以下操作 假设您正在开发直流电机的控制器 您希望让它以用户设置的特定速度旋转 def set point ref sp 90 while true let curr read speed controller set

随机推荐

  • 将类的实例(类的对象)传递给另一个类

    我不明白的是b Bar a 它有什么作用 怎么Bar taking a作为一个论点 那岂不是意味着Bar继承自a 什么是Bar Foo1 Foo 是不是意味着Foo1是类的一个实例Foo 我们如何访问Foo1当它本身是一个对象时 是什么意思
  • 如何设置上传的文件名?

    By using multer I made it to request image file like this 这个文件存储在我设置的 上传 文件夹中 我的代码如下 var multer require multer var uploa
  • sbt 找不到启动器 jar:./bin/sbt-launch.jar

    我已经成功地使用 sbt 进行基本的 Scala 编译好几年了 但有一天它由于某种原因停止工作 我在自己的帐户中使用它 但我决定让我的系统管理员在我们的本地网络上安装最新版本 当我尝试运行它时 我得到 找不到启动器 jar bin sbt
  • 使用 PHPUnit 测试抽象类的方法

    我有一个抽象类 其中包含我希望测试的通用方法 因此我不必在扩展该类的每个类中继续测试它们 abstract class Class1 implements iClass1 const VALUE A private Return publi
  • Laravel 从 API 响应中删除标头值

    Laravel 应用程序版本 5 6 我希望从 API 响应中显示的 Cache Control 标头中删除 private 值 我有一个中间件添加 无缓存 和 无存储 值 response next request response gt
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • 如何将自定义管理器与相关对象一起使用?

    我有一个定制经理 我想将它用于相关对象 我发现用于相关字段 https docs djangoproject com en dev topics db managers controlling automatic manager types
  • ReactiveX:仅对每组中的最后一项进行分组和缓冲

    如何对 Observable 进行分组 并从每个 GroupedObservable 中仅将最后发出的项保留在内存中 这样每个组的行为就像BehaviorSubject 一样 像这样的东西 user 1 msg Anyone here us
  • 如何在没有 JavaScript 的情况下预加载图像?

    在我的 HTML 页面之一上 当我将鼠标悬停在某些链接上时 会显示一些大图像 并且加载这些图像需要一些时间 我不想使用 JavaScript 来预加载图像 有什么好的解决办法吗 HTML5 有一种新方法可以做到这一点 即link prefe
  • Elasticsearch 跨多个索引搜索 - 忽略不存在的索引

    我有弹性集群 其中我的索引包含当前日期 例如 example idex 2016 07 26 gt exists example idex 2016 07 25 gt exists example idex 2016 07 24 gt do
  • iPhone 允许光传感器作为输入吗?

    我只是想知道 iPhone 的开发是否允许使用光传感器 作为按钮或动作元素 我在网上找到了这个链接 可以使用光传感器作为按钮吗 存档 Touch Arcade 如果有人能阐明这个问题 我将不胜感激 Apple 代表的官方答复位于苹果开发者论
  • VSTO 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 VSTO 有哪些替代方案 ManagedXll 能做什么而 VSTO 不能 你什么时候使用其中一个而不
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • 如何使用超类的构造函数创建子类的实例

    我想为作为超类的子类的类创建一个注册表 这些类存储在充当注册表的映射中 根据键从注册表中选择一个类 并通过反射创建该类的实例 我想根据超类的构造函数 带有 1 个参数 实例化一个类 仅当我也在子类中声明构造函数时它才有效 有没有办法使用超类
  • 使用 YouTube Data API v3 的视频元数据

    通过使用搜索示例 我可以获得视频详细信息 例如名称 ID 缩略图 URL 但是我如何使用 YouTube Data API 获取视频总时长 提前致谢 进行搜索调用后 您必须调用 Youtube Data API 视频资源 您最多可以在搜索中
  • Java注释处理器:检查TypeMirror是否实现特定接口

    我正在使用 Java 注释处理器 我的注释 foo用于标记可以在运行时读取到文件或从文件中读取的字段变量 但是 我想检查变量类型是否实现Serializable在编译时 这样如果该字段不可序列化 我可以在编译时给出警告 错误 我不需要实际检
  • 如何让我的星星旋转?我能够制作星星,但不知道如何让它旋转

    这是我必须绘制星星的代码 g2d setStroke new BasicStroke 5 0f g2d setPaint Color BLACK g2d drawLine 40 90 40 40 g2d drawLine 80 90 40
  • 仅在调试版本中防止 NuGet 恢复包

    我在解决方案中启用了 恢复包 选项 因此当我将代码上传到 CI 服务器时 它会更新正确构建所需的所有包 并且效果很好 现在的问题是 在我的本地计算机上 构建需要很长时间才能启动 因为正在 更新软件包 有没有办法仅在发布版本中启用恢复包 我尝
  • FreeBSD 可以在 Docker 中运行吗?

    我一直在寻找一个Docker的图像FreeBSD但找不到 FreeBSD可以在docker中运行吗 如果没有 为什么不呢 从未来编辑 不 你不能 以下项目都没有超越原型 从技术上讲是可以的 但是你需要一个 FreeBSD 主机来完成它 而
  • 使用 Compojure、Hiccup 和 Ring 上传文件

    要将文件上传到我用 Clojure 编写的服务器 我需要一个如下所示的客户端表单