传递附加信息?" /> 如何使用 <input type="file"> 传递附加信息?

如何使用 传递附加信息?

2024-02-16

我需要将文件上传到在 tomcat 上运行的 servlet。除了文件之外,我还想允许用户添加与上传的文件关联的评论。我尝试了以下方法,但没有成功:

<form action='MyUploadServlet' enctype='multipart/form-data' method='POST'>
    <input type='file' name='filechooser'><br />
    <textarea name='comment' cols='15' rows='5'></textarea>
    <input type='Submit' value='Upload'><br />
</form>

这是服务器端代码的片段:

@WebServlet("/MyUploadServlet") 
public class MyUploadServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
            ServletContext sc = request.getServletContext();
            String comment = (String)request.getParameter("comment");
            ....etc}

服务器代码的省略部分处理接收上传文件的内容。

上面的 request.getParameter("comment") 行返回 null。 我在我的应用程序中使用了多个 servlet 和多个表单。在所有其他地方,如果我使用 request.getParameter("form-input-name"),我总是会获得相应输入字段的值。这是唯一的例外,即当表单具有“文件”类型的输入字段时。

如何随文件上传提交一起传递评论?


您需要通过以下方式获取文本字段值same您用来获取上传文件内容的 API。

您已指定要发送数据的 HTML 表单multipart/form-data编码而不是标准application/x-www-form-urlencoded编码。这multipart/form-data为了将文件内容与表单提交一起发送,编码是必需的。但是,那getParameter()方法结合使用application/x-www-form-urlencoded only.

A multipart/form-data请求通常被解析为multipart/form-data解析器,例如众所周知的Apache Commons 文件上传 http://commons.apache.org/fileupload,这是该领域事实上的标准。但是,自从 Servlet 3.0(您似乎正在实际使用它,考虑到 Servlet 3.0 中还引入了@WebServlet http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebServlet.html注释),有一个新的getParts() http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getParts%28%29方法,允许您使用标准方法提取必要的提交数据,而不需要 Apache Commons FileUpload。然而,它仍然只比 Apache Commons FileUpload 更详细一点。您可以在此答案中找到这两种方法的具体示例:如何使用JSP/Servlet上传文件到服务器? https://stackoverflow.com/questions/2422468/how-to-upload-files-in-jsp-servlet/2424824#2424824

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

如何使用 传递附加信息? 的相关文章

随机推荐

  • 如何获取类似于使用 document.body 获取 BODY 的 HTML 元素? [复制]

    这个问题在这里已经有答案了 我知道有一种方法可以做到这一点 但我不记得如何做 如何使用纯 JavaScript 获取 HTML 元素 DOM 中最顶层的元素 Use document documentElement 请参阅文档 https
  • Cordova插件手动安装

    我尝试安装这个插件 https github com Tlantic cdv socket plugin在我的 Phonegap 应用程序上 但是该对象window tlantic plugins socket似乎没有被实例化 我认为这是因
  • 如何使用 Python、PyQt5 和 Pyinstaller 修复未正确显示的按钮

    I created an interface using Qt Designer and integrated it into my python code using PyQt5 I then created an exe file us
  • 无法从内容页面访问内容控件?

    我的内容页面如下所示
  • 安卓; “密钥发送超时……”

    我有一个菜单活动和一个从菜单启动的游戏活动 有些 大多数 时间我启动游戏活动 所有输入都会挂起几秒 最多 10 秒 然后在 logcat 中得到以下信息时以超高速播放 11 20 18 24 27 873 WARN WindowManage
  • 撤销授予我的应用 Google Drive API 的访问权限

    如何撤销已授予我的 Google 云端硬盘网络应用程序的访问权限 以便在用户下次使用时重新请求权限 要撤销您的访问令牌 您需要 GET 此网址 https accounts google com o oauth2 revoke token
  • Android:意图过滤器验证失败

    我的目标是让 Android 自动打开任何以test touchwonders com在我的应用程序中 我已将所需的文件放在我的服务器上 https test touchwonders com well known assetlinks j
  • Express 在 url 末尾奇怪地添加斜杠

    我正在使用 Node js 和 Express 框架来开发网站 我遇到了 url 的奇怪行为 当我单击相关链接 url 时 url 变为 localhost 3000 images 如您所见 末尾添加了斜杠 但是当我将所有 图像 更改为 i
  • Quarkus 异常处理程序

    quarkus 提供异常处理程序吗 我想要像 Spring 的 ControllerAdvice 这样的东西 https www baeldung com exception handling for rest with spring ht
  • 渲染自定义属性 KNP 菜单

    有没有办法在 KNP 菜单包中呈现自定义属性 如下所示 menu factory gt createItem Role ROLE PROGRAM EVENT PLANNER array route gt show form events a
  • 同步并发请求以共享缓慢操作的结果

    我有一个 Java UI 服务 它有一个 API 方法 该方法调用一个相对较慢的操作 比如大约 30 秒 该操作是无参数的 但它对随时间变化 相对缓慢 的外部数据进行操作 该方法返回最新结果并不重要 如果它们是 30 秒的旧结果 那就可以接
  • 如何将 PHP in_array 与关联数组一起使用?

    是否有任何php函数 例如in array 用于通过mysql函数 mysql fetch assoc 获得关联数组 例如 如果我有一个如下所示的 array array 0 gt array ID gt 1 name gt Smith 1
  • 在 HTML 与 CSS 中指定页面加载的图像尺寸

    我很久以前就从某个地方了解到 指定宽度和高度 img HTML 文档中的元素可以加快并改善页面加载体验 并且通常遵循以下做法 img src width 100 height 100 我现在面临的情况是 单个页面上有大量图像 我更喜欢通过
  • 从 Azure VM 打开活动 FTP 连接

    我正在尝试通过 Azure VM 的活动连接连接到远程 FTP 服务器 我收到的错误是 非法 PORT 命令 我使用被动连接连接到其他 FTP 站点没有问题 但此 FTP 服务器仅支持主动连接 我的问题基本上与这个问题 https serv
  • 如何使用php从周数中查找月份号、名称

    如何使用php从周数中查找月份号 名称 如果您有ISO week http en wikipedia org wiki ISO week date数字 然后获取您可以使用的月份 一周的开始 strtotime http php net st
  • 事务管理和 CDI

    我想用CDI 我通常使用Spring 开发一个应用程序来发现这项技术 我读过很多关于 CDI 的文章来了解它是如何工作的 我有一个关于事务管理的简单问题 例如数据库中的持久性 是否必须使用 EJB 3 1 来进行事务管理 或者是否可以仅使用
  • R 闪亮的数据表列用线分割

    我在闪亮的服务器中生成一个数据表 如下所示 x renderTable rownames FALSE 并有一个像这样的用户界面 tableOutput x 现在我希望每隔一列就有一个分割标记为线条 例如 a b c d e 1 2 2 3
  • 了解 XDR 规范以创建 *.x 文件

    我浏览了互联网上的几个网站 实际上想知道我们如何在规范中编写规范 x文件以生成等效函数 通常 您可以从 x 文件生成三 组 代码 消息 xdr 编码器 解码器函数 客户端存根和服务器存根 当然 您也可以手动完成 但要做到正确的工作量太大 使
  • 如何从文件名中删除文件扩展名(VBA)

    我有一个文件名变量 其中包含 Filename csv 要从我使用的路径中提取文件名 Filename Dir fStr where fStr从我选择的文件中检索 我只需要文件名而不需要 csv 我该如何删除 csv 扩大 最好使用类似的函
  • 如何使用 传递附加信息?

    我需要将文件上传到在 tomcat 上运行的 servlet 除了文件之外 我还想允许用户添加与上传的文件关联的评论 我尝试了以下方法 但没有成功