使用jQuery删除存储桶中的对象

时间:2018-07-12 08:00:39

标签: autodesk-forge

如何通过jQuery-Call选择存储桶中的对象。以下代码显示了我上传文件的示例。目的是以类似的方式进行删除。谢谢

function uploadFile(node) {
$('#hiddenUploadField').click();
$('#hiddenUploadField').change(function () {
  if (this.files.length == 0) return;
  var file = this.files[0];
  switch (node.type) {
  case 'bucket':
    var formData = new FormData();
    formData.append('fileToUpload', file);
    formData.append('bucketKey', node.id);

    $.ajax({
      url: '/api/forge/oss/objects',
      data: formData,
      processData: false,
      contentType: false,
      type: 'POST',
      success: function (data) {
        $('#appBuckets').jstree(true).refresh_node(node);
      }
    });
    break;
}
});
}

2 个答案:

答案 0 :(得分:1)

您可以在服务器端公开必要的部分(就像在 / api / forge / oss / objects 端点上所做的那样,将文件上传到给定存储桶),然后以类似的方式从客户端调用。

服务器端

router.delete('/buckets/:id', function (req, res) {
    var tokenSession = new token(req.session)

    var id = req.params.id

    var buckets = new forgeSDK.BucketsApi();
    buckets.deleteBucket(id, tokenSession.getOAuth(), tokenSession.getCredentials())
      .then(function (data) {
          res.json({ status: "success" })
      })
      .catch(function (error) {
          res.status(error.statusCode).end(error.statusMessage);
      })
})

客户端

function deleteBucket(id) {
    console.log("Delete bucket = " + id);
    $.ajax({
        url: '/dm/buckets/' + encodeURIComponent(id),
        type: 'DELETE'
    }).done(function (data) {
        console.log(data);
        if (data.status === 'success') {
            $('#forgeFiles').jstree(true).refresh()
            showProgress("Bucket deleted", "success")
        }
    }).fail(function(err) {
        console.log('DELETE /dm/buckets/ call failed\n' + err.statusText);
    });
}

看看这个实现了文件上传和存储桶删除的示例:https://github.com/adamenagy/oss.manager-nodejs

答案 1 :(得分:0)

很好,谢谢。以及如何使用C#在服务器端解决它?现在,Rigth在服务器端的上传看起来像:

yield takeEvely(OTHER_STUFF_ACTION, doOtherStuff);
相关问题