首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >filepicker-rails w/signup form:在Filepicker中删除文件的按钮

filepicker-rails w/signup form:在Filepicker中删除文件的按钮
EN

Stack Overflow用户
提问于 2014-09-14 06:21:18
回答 1查看 259关注 0票数 0

在我的Rails3.2应用程序中,我通过filepicker-rails gem使用Filepicker,允许用户在注册表单上上传头像。在f.filepicker_field中,我使用onchange选项调用一个onImageUpload()函数,该函数从自动生成的event.fpfile中获取有关新上传的图像的信息,并禁用Filepicker浏览按钮:

代码语言:javascript
复制
function onImageUpload() {
  file = event.fpfile
  img = $("<img>").prop("src", file.url).css({
      width: '160px',
      height: '160px',
    });
  $("#profile_photo_preview").append(img);
  $(".filepicker-button").toggleClass("disabled");
}; 

我在Filepicker docs section on Widgets上读到了关于event.fpfile的内容。在表单中,我还有一个链接,当单击该链接时,将从DOM中删除最近更新的图像,并重新启用Filepicker按钮:

代码语言:javascript
复制
:javascript 
  $(document).ready(function() {
    $("#picture-remover").click(function() {
      $("#profile_photo_preview").html("");
      if ( $(".filepicker-button").hasClass("disabled") ) {
        $(".filepicker-button").toggleClass("disabled");
      };
    });
  });
...
...
= link_to "Remove Picture", id: "picture-remover"

这一切似乎都运行得很好。唯一的问题是,如果用户删除第一张图片,然后使用Filepicker浏览器上传另一张图片,原始图片仍然保存在我的Filepicker帐户中。

我想让我的“删除图片”链接不仅从DOM中删除图片,还从我的Filepicker帐户中完全删除图片。Filepicker文档中有一节是关于移除/删除文件的here,但我并不真正理解示例代码,也不知道如何自己实现它。我特别搞不懂用于删除文件的InkBlob和用于显示缩略图预览的event.fpfile对象之间的关系。

到目前为止,我已经尝试将下面这行添加到我的“删除图片”链接中,但是没有任何反应:

代码语言:javascript
复制
:javascript 
  $(document).ready(function() {
    $("#picture-remover").click(function() {
      $("#profile_photo_preview").html("");
      if ( $(".filepicker-button").hasClass("disabled") ) {
        $(".filepicker-button").toggleClass("disabled");
      };
      filepicker.remove(InkBlob); #added this line
    });
  });

非常感谢任何能给我指明正确方向的人!

EN

回答 1

Stack Overflow用户

发布于 2014-09-30 16:13:27

InkBlob和event.fpfile对象具有相同的角色和相同的属性。

在您的示例中,您可以将event.fpfile对象传递给remove函数。

代码语言:javascript
复制
var file = event.fpfile;
filepicker.remove(
  file,
  function(){
    console.log("Removed");
  }
);

一般情况下,要删除filepicker文件,你只需要它的url。

所以这段代码也能很好地工作:

代码语言:javascript
复制
var someObject = {url: 'https://www.filepicker.io/api/file/xaXphhT9R0GB1tPYUQAr'};
filepicker.remove(
  someObject,
  function(){
    console.log("Removed");
  }
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25828289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档