首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pypandoc从文档中提取图像到Django项目的媒体存储库中的不同文件夹中?

如何使用pypandoc从文档中提取图像到Django项目的媒体存储库中的不同文件夹中?
EN

Stack Overflow用户
提问于 2016-05-13 16:16:42
回答 1查看 1.4K关注 0票数 1

我目前正在尝试从用户上传到media应用程序的媒体存储库的文档中提取图像。目前适用于我的代码是:

代码语言:javascript
复制
 html = pypandoc.convert(
        tmp_loc,
        'html5',
        extra_args=['--extract-media=']
        )

这正确地将图像提取到媒体目录中,如image01.jpg

在HTML中,img是:

代码语言:javascript
复制
<img src="/media/image01.jpg" />

现在的问题是,当用户上传另一个也有图像的docx时,它会在上传之前的图像时替换它,因为它也是由名称image01.jpg保存的。

为了解决这个问题,我想我们可以在媒体存储库中创建一个新文件夹,新文件夹的名称将是文档名。现在代码看起来是这样的:

代码语言:javascript
复制
html = pypandoc.convert(
        tmp_loc,
        'html5',
        extra_args=['--extract-media=/media/<some_doc_name>']
        )

但是,当我运行这个程序时,我会得到以下错误:

代码语言:javascript
复制
Pandoc died with exitcode "1" during conversion: b'pandoc:     /media/docs: createDirectory: permission denied (Permission denied)\n'

有人能指点我出什么事了吗?怎么解决这个问题?任何解决这一问题的替代方法也将不胜感激!

我在python中使用Pypandoc模块。

EN

回答 1

Stack Overflow用户

发布于 2016-06-05 10:19:52

您正在收到的错误说明您没有权限在/media/docs下创建目录

这样的事情发生的原因有很多。

  • 您没有权限在"/media/docs“下创建子目录--只需更改权限即可
  • 您有权限,但您运行的应用程序在没有权限的其他用户名下创建组和更改该组的权限。
  • 您想要提取到应用程序下的"media“目录,而不是系统根"/media”--您的路径被错误地指定了--应该在"/home/user/program/media/docs“或"media/docs”(而不是前面的"/")之前有“更多”。
  • 您正在尝试将数据提取到不存在的子目录中,而您的程序无法处理这种情况,因为无法创建“父”目录,所以只需确保创建了目录即可。

最后一件事--如果您正在上传文档,不要假设它们确实有唯一的名称,使用一些唯一的东西(比如创建的记录的主键),或者通过验证该目录不存在来检查唯一性,如果它在那里,那么在末尾创建一个带有其他数字或随机文本的新目录。

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

https://stackoverflow.com/questions/37214817

复制
相关文章

相似问题

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