【问题标题】:How to send a file from one Yii controller to another Yii controller如何将文件从一个 Yii 控制器发送到另一个 Yii 控制器
【发布时间】:2013-08-13 01:12:20
【问题描述】:

我想在 Web 应用程序之间传输文件。 假设应用程序 A 就像一个文件服务器。 应用程序 B 是用户。

有时,应用程序 B 需要更新其脚本。它将从应用程序 B 中获取更新的脚本。

应用 A 中的 Yii 控制器是否可以读取文件并将其发送给应用 B?

我想我可以使用 fopen 打开一个 URL 并获取一个文件。 但是如何让控制器返回一个文件呢?

【问题讨论】:

  • @Ninad,我尝试过的是在 B 上使用公共临时文件夹。因此 A 可以使用 fopen 获取它并 fwrite 以替换 A 上的旧脚本。我认为这种方式不安全.我认为控制器之间的传输更安全。
  • 应用 A 和 B 是否在不同的服务器上?
  • 如果你想在 B 上开发并在 A 上提交(生产?)然后使用 rsync。如果您想从 B 加载 A 的脚本 - 将它们导入 config.如果您想在网络中输入对 A 的更改 - 使模型能够处理文件并尝试 CMap::mergeArray。
  • @ineersa,我在想像诺顿的自我更新。或者像 Glassfish 的更新机制。
  • @ethan,是的,它们在不同的服务器上。

标签: yii


【解决方案1】:

好吧,我想我会在应用程序 A 的控制器中设置一个操作,读取并输出您希望应用程序 B 下载的文件。有关如何执行此操作的示例,请参见此处:http://php.net/manual/en/function.readfile.php

在应用程序 B 中,我个人会使用 CURL 下载文件,因为我可以将用户名和密码传递给应用程序 A 以限制下载。此链接提供了一些有关创建下载文件 Downloading a large file using curl 的 CURL 请求的示例。

要下载多个文件,您可能需要执行以下两项操作之一:1) 遍历应用程序 B 中与您要下载的应用程序 A 中的文件相对应的文件名数组,或者 2) 压缩文件在 Application A 中,然后在 Application B http://php.net/manual/en/book.zip.php 下载后解压。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多