java - 如何检索使用 jQuery fileupload 发布到 Java servlet 的表单数据?

标签 java jquery file-upload jquery-file-upload servlet-3.0

jQuery fileupload 文档说,我可以通过在提交之前将 formData 参数设置为对象来发送其他表单数据参数。我这样做是这样的:

data.formData = {'a':'one', 'b':'two'};

...然后调用data.submit()。我的 Java servlet (3.x) 被调用,但是当我尝试以正常方式检索参数时,例如

request.getParameter("a");

...那里什么也没有(即它是null)。我也查看了 request.getParameterNames()request.getParameterMap(),它们都是空的。

如何访问参数?

这些是我的文件上传初始化选项:

url: '/my-upload-servlet',
autoUpload: false,
singleFileUploads: false,
maxFileSize: 9000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png|tif|tiff|pdf)$/i,
dataType: 'json',
previewMaxWidth: 128,
previewMaxHeight: 85,
disableImageResize: false,
previewCrop: true,

我还尝试将 formData 选项设置为对象数组,文档说这也是一个选项,例如

data.formData = [ {name:'a', value:'one'}, {name:'b', value:'two'} ]

...但还是不行。

这是上传文件的完整代码片段(注释掉的内容是我尝试过的其他内容):

var params = new FormData();
params.append('params', JSON.stringify({a:'one', b:'two'}) );
data.formData = params;

//data.formData = {a:'one', b:'two'};

//data.formData = [
//    { name: 'a', value: 'one' },
//    { name: 'b', value: 'two' },
//];

//data.url = '/my-upload-servlet?a=one&b=two';

data.submit()
    .success(function (result, textStatus, jqXHR) {
        console.log('Hurray!');

    }).error(function (jqXHR, textStatus, errorThrown) {
        console.log('Boo!');

    }).complete(function (result, textStatus, jqXHR) { 
        console.log('Done');
    });

这些都不适合我。
无论我尝试上述哪种方法,调用 HttpServletRequest.getParameter("a")HttpServletRequest.getParameter("params") (在 FormData 的情况下)始终返回null

最佳答案

我们无法在文件上传 (multipar) 请求的负载中发送对象。我们只能发送键值对。但是,如果我们想发送 json 那么我们首先需要将其转换为字符串,使用:

var data = JSON.stringify(formData);

完成后,我们可以将其发送到请求负载中并在 servlet 中反序列化,例如:

mapper.readValue(request.getParameter(""), YourClass.class);

关于java - 如何检索使用 jQuery fileupload 发布到 Java servlet 的表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35786346/

相关文章:

Java无法正确显示字符串的最后一个字母?

php - 在 html 文件中包含 html 电子邮件

javascript - 调整浏览器大小时jquery div innerheight不更新

php - 上传前检查文件大小

javascript - Node.js 对于文件上传(以及所有基于事件循环的语言)来说不是一个好的选择 - 这是真的吗?

java - 具有固定原点的图形

java - 优化期间会使用 Java 内联方法吗?

java - 如何将 "propagate"将一个 `ArrayList<String>` 排序到另一个?

javascript - 检测 url 上的更改

java - 具有简历功能的 PHP 上传文件