将文件从ajax传递给spring contorller

时间:2016-06-25 04:09:21

标签: ajax spring file-upload

我有表格,除了其他字段外,还有文件下拉和文件浏览器按钮。当用户上传文件并单击该按钮时,将进行Ajax调用并将文件提交给控制器。 Javascript显示文件,但在控制器中它是空的。

HTML:

<label for="selectEnclosure" style="margin-left:8%; ">Select an Enclosure:</label>
<select id="templateEnclosuresDropDown" class="validate[required] input_user" style="width:25%"  title="Select>Enclosure"</select>

<c:forEach items="${templateEnclosures}" var="templateDDEnclosure" varStatus="loopStatus">
    <c:if test="${templateEnclosure.enclosureType.name!='Default'}"> {
        <option value="${templateDDEnclosure.persistentId}"> ${templateDDEnclosure.enclosure.name} </option>
    </c:if>
</c:forEach>
<option value="0">Additional Enclosure</option>

Ajax电话:

userhome.upload = function() {
    alert(" pelae sai");
    var form=$('<form></form>');

    form.attr("method", "post");
    form.attr("action", SECURE_CONTEXT_PATH_ROOT + "/letter/melletter/uploadEnclosure")
    form.processData()

    var field =$('<input></input>');

    field.attr("enclosureFile", $('#enclosureFile').prop('files')[0]);
    field.attr("enclosurename" ,$('#templateEnclosuresDropDown :selected').text());
    field.attr("templateId",$("#codeNameId").val());

    var url = SECURE_CONTEXT_PATH_ROOT + '/letter/melletter/uploadEnclosure';

    $(document.body).append(form);
    form.submit();
}

1 个答案:

答案 0 :(得分:0)

首先要做的是将此属性添加到表单元素:

enctype="multipart/form- data"