使用Jquery / Ajax将文件上载到本地REST服务

时间:2016-01-18 08:42:33

标签: javascript jquery ajax rest

我想使用文件资源管理器通过我的REST服务将文件上传到我们的数据库,截至目前,我设法通过点击findDocumentOnboarding的{​​{1}}按钮打开文件资源管理器。但我没有设法使用我的input type="file"按钮上传所选文件。

我尝试使用以下代码:

HTML

uploadDocumentOnboarding

Jquery的/使用Javascript

<input type="button" value="Upload document" class="btn btn-xs btn-primary uploadDocumentOnboarding">
<input id="file" type="file" class="findDocumentOnboarding">

我在这里做错了什么?

非常感谢任何帮助!

修改:我现在正在 $(".uploadDocumentOnboarding").on(click, function (evt) { IdToEdit = $(this).closest('tr').siblings().find('p.important').text(); alert(IdToEdit); var url = "http://localhost:10110/MavenProject/api123/Onboard/uploads/"+IdToEdit; evt.preventDefault(); var documentData = new FormData(); documentData.append("file", $('input#file.findDocumentOnboarding')[0].files[0]); $.ajax({ url: url, type: 'PUT', data: {'testBlob': (documentData)}, async: false, cache: false, contentType: false, enctype: 'multipart/form-data', processData: false, success: function (response) { alert(response); } }); return false; });

2 个答案:

答案 0 :(得分:0)

尝试用.on("click"代替.on(click;正在删除async: false,enctype: 'multipart/form-data',

答案 1 :(得分:0)

我必须这样做,注意POST而不是PUT以及数据和附加数据的区别:

    $(".uploadDocumentOnboarding").on("click", function (evt) {
    IdToEdit = $(this).closest('tr').siblings().find('p.important').text();
    var url = "http://localhost:10110/MavenProject/api123/Onboard/uploads/"+IdToEdit;
    evt.preventDefault();

    var documentData = new FormData();
    documentData.append('file', $('input#file.findDocumentOnboarding')[0].files[0]);
    $.ajax({
        url: url,
        type: 'POST',
        data: documentData,
        cache: false,
        contentType: false,
        processData: false,
        success: function (response) {
            alert("Document uploaded successfully.");
        }
    });

    return false;
});