简体   繁体   中英

How to send extra values with Kendo File Upload

I am trying to upload a file and file upload is successfully uploading. I am facing problem when I am sending extra values along with file upload save url.

I have Created a jsfiddle

Jsfiddle Example Link I am able to upload the files but I want to send the drowpdown value and text box value along with file upload.

    <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>

I have updated your JSFiddle to post additional fields.

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

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

Did you take a look at the upload event handler? Looks like this will do what you need possibly to send extra data, their example is adding a request header.

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

I managed to modify the saveurl in the upload function like this:

upload: function (e) { e.sender.options.async.saveUrl = e.sender.options.async.saveUrl + "/" + e.files[0].name; }

I am always uploading one file and I am sending its name in the URL. Async configuration is:

async: { withCredentials: true, saveUrl: "url to the saving service", }

Here is an example I have used:

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 + "')"

      });
    },

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM