使用Dojo文件上载客户端将附加数据发送到Java服务器端

时间:2014-11-04 18:21:48

标签: java file-upload dojo

我需要在使用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();

1 个答案:

答案 0 :(得分:0)

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

public class MyServlet extends HttpServlet {

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

抄袭主教直接回复您提问的信息,您可以使用?附加网址参数?和&amp;字符(即?one = 1&amp; two = 2)。在服务器端,您需要从请求中读取这些URL参数:

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