使用 Dojo 文件上传客户端向 Java 服务器端发送附加数据

Posted

技术标签:

【中文标题】使用 Dojo 文件上传客户端向 Java 服务器端发送附加数据【英文标题】:Send additional data to Java server-side using Dojo file upload client-side 【发布时间】:2014-11-04 18:21:48 【问题描述】:

在使用 dojo 上传文件时,我需要向服务器端发送额外的数据。我怎么做?

我使用的是dojo文件上传器的上传方式。我想为服务器端的文件目标动态传递一个附加变量。

我的 javascript 代码:

function(Uploader, FileList, dom, on, Carousel, ContentPane, SwapView) 
    dojo.ready(function() 
        var form = dojo.byId("myForm");              
        var uploaderDIV = dojo.byId("uploader");

      up = new Uploader(
          label: 'Attach Files',
          multiple: true,
          showInput: 'before',
          name : 'uploadedfiles[]',
          url: '/TestServer/rest-services/submitForm',
      ).placeAt(uploaderDIV);     

还有我的服务器端代码:

@Path("/submitForm")
@POST
@Consumes("multipart/form-data")
@Produces(MediaType.TEXT_html, MediaType.APPLICATION_JSON)
public Response uploadFile(MultipartFormDataInput input) 

    String fileName = "";

    Map<String, List<InputPart>> formParts = input.getFormDataMap();

【问题讨论】:

一般url: '/TestServer/rest-services/submitForm?whatever=you+want 如何在服务器端读取“whatever”?我对网络编程还很陌生。 服务器上?取决于您的服务器端语言。如果在 php 中,您可以使用$_GET['whatever']。这种方法并不可靠,但可以完成工作。 我在服务器端使用 Java 您对 Java 的理解超出了我的理解范围。我已经编辑了您的问题,可能会引起有这方面知识的人的更多关注。 【参考方案1】:

我建议在这里使用 Apache FileUpload,因为它会极大地简化你的生活。在我的实现中,我设置了一个映射到上传 URL 的 servlet,并在 doPost 方法中处理了请求:

public class MyServlet extends HttpServlet 

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        // ...
    

根据 bishop 直接回答您的问题提供的信息,您可以使用 ? 附加 URL 参数和 & 字符(即 ?one=one&two=two)。在服务器端,您需要从请求中读取这些 URL 参数:

String one = request.getParameter("one");
String two = request.getParameter("two");

【讨论】:

我使用了url参数,文件上传器url可以动态设置。 up.set("url", "/TestServer/rest-services/submitForm?paramname=paramvalue");并使用@QueryParam 在java 端解析它。感谢您的帮助。

以上是关于使用 Dojo 文件上传客户端向 Java 服务器端发送附加数据的主要内容,如果未能解决你的问题,请参考以下文章

使用js向服务器上传文件

Java文件上传下载

Java上传和下载

如何使用multipart/form-data格式上传文件

java向SFTP服务器上传文件,如何判断服务器上的文件夹是不是存在?

Java通过ssh向服务器上传下载删除文件和操作Linux