2012-03-08 68 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