【问题标题】:how to upload a file in to asset folder in silverstripe framework如何将文件上传到 silverstripe 框架中的资产文件夹
【发布时间】:2016-04-15 02:20:16
【问题描述】:

我从 html 页面中的输入字段获取文件。然后通过 anjular js 将其发送到 php。我需要将此文件上传到 silverstripe 框架中的资产文件夹。我搜索了很多,但我只发现从 cms 上传。但我的文件不是来自 cms。请帮助我,我是该领域的新手

【问题讨论】:

  • 你能分享你正在使用的代码吗?如果没有可重复的示例,我们将无济于事。
  • 暂时我无法共享代码。我尝试从我的计算机输入图像,然后将输入数据输入到 anjular js 范围对象。然后传递给 php。在 php 代码中,我需要将图像文件上传到资产文件夹。在 php 代码中我有这个代码。 $postData=file_get_contents("php://input");我正在获取变量 $postdata 的所有属性。现在我需要将其上传到资产文件夹。我该怎么做?请帮助我。

标签: javascript php html silverstripe


【解决方案1】:

我无法发表评论,因为没有足够的代表,但如果您从 SilverStripe 外部获取图像,您可以将文件直接保存到资产文件夹中,它们将出现在 CMS 中。请注意,您可能需要运行 http://yoursite.com/dev/tasks/FilesystemSyncTask 才能显示它们。

SilverStripe 中的文件和图像系统维护自己的 assets/ 文件夹内容数据库。此操作将更新该数据库,并且应在从 SilverStripe 外部将文件添加到 assets/ 文件夹时调用,例如,如果作者通过 FTP 上传文件。

【讨论】:

  • 我正在尝试从我的计算机输入图像并将输入数据输入到 anjular js 范围对象。然后传递给 php.ini。在 php 代码中,我需要将图像文件上传到资产文件夹。我可以使用你的方法吗?暂时我不能包括我的代表。抱歉。
  • 我正在为客户使用网站。当他们插入图片时,我猜他们不知道运行您提供的网址。有什么办法吗?
  • 可以让用户上传的内容正常运行,而无需运行该链接,但您需要创建单独的 DataObject / Controller 来处理传入文件。您需要使用 SilverStripes 功能而不是 PHP 来保存它,这样它才能与 CMS 一起正常工作。试试reading this,它可以解决您遇到的类似问题
  • 我建议不要在 v3.4.0 中使用同步文件。两天前,我在资产的子文件夹中直接从 CMS 运行它,该操作导致所有文件丢失,而不仅仅是文件夹中的文件。物理文件仍保留在文件系统上,但我曾经上传且仍在文件系统上的文件的数据库条目消失了。文件系统上不再存在的文件的数据库记录仍然存在 :-) 幸运的是,这是一个开发实例,所以我只是导入了数据库。
猜你喜欢
  • 2013-05-02
  • 1970-01-01
  • 2015-08-01
  • 2012-03-10
  • 2011-08-07
  • 1970-01-01
  • 2012-01-14
  • 2017-09-21
  • 1970-01-01
相关资源
最近更新 更多