如何使用Kendo文件上传发送额外的值

时间:2014-02-05 06:55:43

标签: javascript jquery kendo-ui kendo-grid

我正在尝试上传文件,文件上传成功上传。当我发送额外的值以及文件上传保存网址时,我遇到了问题。

我创建了一个jsfiddle

Jsfiddle Example Link 我可以上传文件,但我想发送drowpdown值和文本框值以及文件上传。

    <span>Document Type
<select id="dropdownlist">
    <option>Id Proof</option>
    <option>Driving Liscence</option>
    <option>Other</option>
</select>
    <br/>
    Doc Number<input type="text" class="k-text" />
    <br/>
<div style="padding: 4px; margin-bottom: 10px;">
        Acceptable file types: .xml<br/>File size limit: 5MB
 </div>
    <input type="file" name="batchFile" id="batchFile" title="Select file" />
    <div id="upload-error" class="k-state-selected" style="padding: 4px; margin-top: 10px; display: none"></div>

<script>
$("#dropdownlist").kendoDropDownList();


$("#batchFile").kendoUpload({
    async: {
        saveUrl: '/Upload',
        autoUpload: false
    },
    multiple: false,
    localization: {
        select: "Select a file",
        uploadSelectedFiles: "Send"
    }
});
</script>

5 个答案:

答案 0 :(得分:12)

我已更新您的JSFiddle以发布其他字段。

http://jsfiddle.net/dtrimarchi/bWs9j/61/

upload: function (e) {
    e.data = { dropdownlist: $("#dropdownlist").val(), docnumber: $("#docnumber").val() };
}

答案 1 :(得分:1)

您是否看过upload事件处理程序?看起来这会做你需要发送额外数据的东西,他们的例子就是添加一个请求标题。

http://docs.telerik.com/kendo-ui/api/web/upload#events-upload

答案 2 :(得分:0)

我设法修改了上传功能中的saveurl,如下所示:

上传:function(e){                 e.sender.options.async.saveUrl = e.sender.options.async.saveUrl +“/”+ e.files [0] .name; }

我总是上传一个文件,我在URL中发送它的名字。异步配置是:

async:{          withCredentials:true,          saveUrl:“保存服务的网址”, }

答案 3 :(得分:0)

API 控制器端 $("#xyz").kendoUpload({ multiple: true, async: { saveUrl: API_UploadFile, //removeUrl: "remove", autoUpload: false }, upload: onUpload, validation: { allowedExtensions: [".gif", ".jpg", ".png", ".jpeg"] }, }); function onUpload(e) { var keyInput = $("#Id").val(); if (keyInput != null) { e.formData = new FormData(); e.formData.append("KeyValue", keyInput); }UI Kendo scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { @Override public void adjustmentValueChanged(AdjustmentEvent evt) { int x = evt.getValue() % 255; contentPane.setBackground(new Color(x, x, x)); System.out.println("scorled"); } });

答案 4 :(得分:-1)

以下是我使用过的一个例子:

upload: function onUpload(e) {

 $.each(e.files, function (index, value) {
var fileName = value.name;

 e.sender.options.async.saveUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('List A')/items(2)/AttachmentFiles/add('" + fileName + "')"

      });
    },
相关问题