【问题标题】:Struts2 upload file by POSTingStruts2 通过 POST 上传文件
【发布时间】:2013-06-12 18:26:14
【问题描述】:

所以我正在尝试将wami-recorder 集成到我的网络应用程序中。 webapp 目前是使用 Struts2 框架构建的。

StackOverflow here 上有一个关于如何将 wami-recorder 集成到 php 站点的示例。如何使用 Struts2 实现类似的功能?看起来 wami 试图将文件发布到某个 URL。如何让 Struts2 接收这样的文件?还是有更好的方法来解决这个问题?

编辑:MMk 所以,我用 Dave 的措辞搜索谷歌并找到 this。现在,我的动作的执行方法看起来像

HttpServletRequest request = ServletActionContext.getRequest();
InputStream body = null;

try {
    body = request.getInputStream();
    OutputStream outputStream = new FileOutputStream("/home/test.mp3");
    IOUtils.copy(body, outputStream);
    outputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

return SUCCESS;'

但是,当我使用 wami POST 时

Wami.startRecording("http://localhost:8080/addRecording/test.wav");

我在 chrome 开发者工具中得到以下信息:

Request URL:http://localhost:8080/addRecording/test.wav
Request Method:POST
Status Code:404 Not Found

我的动作类的配置有问题吗?还是我在滥用 wami?

【问题讨论】:

  • 按照uploading files in Struts 2上的指南进行操作?
  • 请原谅我戴夫,因为我还是个菜鸟。该页面上的所有示例似乎都使用了 s:file 标记。我没有看到该标签可以适合此工作流程的任何地方。我的(可能是错误的)理解是 wami-recorder 将文件的原始 POST 数据推送到 URL。我如何接受这些原始数据作为操作参数?
  • 你也是一个struts名人我到处都能看到你的名字
  • 上传过程本身并不关心数据来自哪里,只要是正常的 HTTP 多部分请求,并且 S2 操作属性与表单数据的文件名匹配即可。只要没有狗仔队,我就可以接受名人角色,但似乎我应该进入更多俱乐部。
  • 哈哈,不幸的是它不能那样工作。顺便说一句,我根据您的回复编辑了我的帖子。

标签: servlets post file-upload struts2


【解决方案1】:

使用更新的代码,文件实际上正在被存储。由于其他原因获得 404。无论如何,我的问题得到了回答。

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 2013-11-29
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多