2012-03-08 54 views
1

我是新來的劍道UI,我用我的asp.net文件上傳插件MVC application.Everything就像一個dream.But我有一個額外的要求。當我上傳文件時,我將一個唯一的圖像guid分配給圖像文件並上傳,然後返回到回調函數。這裏是我的代碼。劍道UI文件上傳插件刪除按鈕定製

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#attachments").kendoUpload({ 
      async: { 
       saveUrl: '@Url.Action("UploadBlogImages", "Blog")', 
       removeUrl: '@Url.Action("Remove", "Blog")', 
       autoUpload: true 
      }, 
      success: function (data) { 
       var imageGuids = data.response; 
       $.each(imageGuids, function (index, imageGuid) { 
        $('#form_uploadPic').append('<input type="hidden" value=' + imageGuid + 'name="ImgGuid">'); 
       }); 
      } 
     }); 
    }); 
</script> 

我需要刪除的文件,當用戶點擊刪除按鈕,但我的問題是,在默認情況下刪除按鈕傳遞文件的名稱 (這是在上傳時使用)作爲文件name要delete.But我 重命名文件上傳到server.I之前我分配一個唯一的GUID來file.I已經返回GUID來function.How怎樣設定,以便刪除按鈕通過該GUID到服務器成功刪除文件。

感謝, 小號

回答

3

有趣的場景。有兩種方法去了解它現在:

  1. 成功時,找到代表FileEntry的li元素,並得到它的fileNames數據 - *屬性。將檢索到的fileNames對象的name屬性設置爲您從服務器獲取的guid值。這基本上更新了Kendo上傳控件的刪除功能所使用的文件名。 (如果你能得到原始資源,找到方法removeUploadedFile和_submitRemove,所有這一切都會有很大的意義)

  2. 清潔器(有些)選項是成功找到新添加的li元素(fileEntry),然後關聯'刪除'按鈕(class:k-upload-action)。一旦你有刪除按鈕,你可以掛鉤一個點擊事件,通過它來調用你自己的自定義url或上傳控件的removeUrl,並傳遞給你上傳成功時檢索到的文件guid。

+0

ASUM感謝很多 – Sagar 2012-03-08 11:21:49

+0

喬爾嗨,但我不能顯示我的最終用戶的GUID作爲文件名,因爲它不會看good.Is有任何其他方式out.Thanks您的合作。 – Sagar 2012-03-08 11:46:18

+0

更新'fileNames'數據屬性的'name'屬性不會影響顯示的文件名。這是安置在裏面的跨度,但你永遠不會操縱該元素的HTML。使用Firebug檢查來給它一個旋轉,你會看到我在說什麼。另一個推薦的擴展是FireQuery能夠檢查數據屬性值。 – 2012-03-09 05:46:59

6

另一種選擇是將ID添加到文件對象本身,所以在onSuccess處理補充一點:

function onUploadSuccess(e) { 
    //add the id returned in the json from the upload server script 
    e.files[0].id=e.response.id; 
} 

然後在刪除處理程序將名稱更改爲ID:

function onUploadRemove(e) { 
    var files = e.files; 
    for(i=0;i <files.length;i++){ 
      //replace the name with the id added to the object 
     files[i].name=files[i].id; 
    } 
} 

設置是這樣的:

$("input[type='file']").kendoUpload(
    { 
     async: { 
      saveUrl: "url", 
      removeUrl: "url", 
      removeField: "files" 
     }, 
     success: onUploadSuccess, 
     remove: onUploadRemove 
    } 
); 

件作品上最新kendoUI