首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以从dam中删除上传的文件吗

我们可以从dam中删除上传的文件吗
EN

Stack Overflow用户
提问于 2017-03-15 23:06:52
回答 2查看 1K关注 0票数 0

我需要以编程方式从DAM Asset中删除上传的文件。我们可以从DAM中删除特定的文件节点吗?

路径:- /content/dam/nextgen/Ehub-POD/....

在Ehub-POD中,我创建了一个文件夹并上传文件。在jsp页面中,我将选择特定的文件,并需要从dam和jsp中删除该文件。

EN

回答 2

Stack Overflow用户

发布于 2017-03-16 16:19:22

让我们假设我们在dam中有以下图像:

代码语言:javascript
复制
/content/dam/nextgen/Ehub-POD/image1.jpg

要删除它,请使用jcr Session

代码语言:javascript
复制
session.removeItem("/content/dam/nextgen/Ehub-POD/image1.jpg")
if (session.hasPendingChanges()) {
    session.save();        
}

dam中的图像将被删除,现在您需要运行查询来找出图像被使用的位置并删除fileReference属性:

代码语言:javascript
复制
Workspace workspace = session.getWorkspace();
QueryManager qm = workspace.getQueryManager();
Query query = qm.createQuery("/jcr:root/content/websitename/*[@fileReference='/content/dam/nextgen/Ehub-POD/image1.jpg']", Query.XPATH);
QueryResult queryResult = query.execute();
result = queryResult.getNodes();
while (result.hasNext()) {
    Node node = result.nextNode();
    node.getProperty("fileReference").remove();
}

或者你可以删除所有关于图像的信息,接收到的关于裁剪的节点存储信息,fileReference等等:

代码语言:javascript
复制
while (result.hasNext()) {
    Node node = result.nextNode();
    node.remove();
}

并且不要忘记保存您的存储库更改

代码语言:javascript
复制
if (session.hasPendingChanges()) {
    session.save();        
}
票数 0
EN

Stack Overflow用户

发布于 2017-03-16 18:40:34

另一种通过CURL实现的方法:

您可以对镜像路径执行CURL DELETE请求将其移除。此外,您还可以通过以下命令使用CURL查找对图像的所有引用:

代码语言:javascript
复制
http://localhost:4502/bin/wcm/references.json?path=/content/dam/nextgen/Ehub-POD/test-image.png

CSS这将为您提供使用此图像的所有位置的参考(

或JS除外)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42813596

复制
相关文章

相似问题

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