【问题标题】:Upload an HTML file and automatically upload companion assets上传 HTML 文件并自动上传随播资产
【发布时间】:2011-10-25 22:37:24
【问题描述】:

场景

我工作的公司最近爆发了(我在它成立几年后才开始创业),现在我们有了第二位开发人员和大约 5 位设计师。

以前,我自己负责所有开发工作,包括一个展示网页,其中包含要发送给客户的横幅广告 - example here

为此我开发了自己的模板系统,它只是将模板中的标记(例如{300x250})替换为从行中指定的目录中提取的横幅,该目录代表具有匹配大小的作业。

设置其中之一的过程是:

  1. 连接到 FTP 并将文件 (swfs) 上传到给定目录。
  2. 登录 phpMyAdmin 并在表中创建一条记录,该表将保存有关文件路径、客户端名称和要使用的模板的信息。
  3. 如果需要,创建一个新模板 - 即如果有不寻常的横幅分类。

如您所见,对于没有我技能的人(即设计师)来说,上述内容几乎是不可能完成的。

我的想法

我要做的是创建一个将托管在我们的暂存域中的模板,以及一个将通过$_GET 搜索值的伴随索引页面,该值将表示 HTML 文件的路径。例如:

http://example.com/?view=bing_lee_october.html

然后我想做的是创建一个接口,它将执行以下操作:

  1. 显示一个接受 HTML 文件的文件上传字段。
  2. 选择 HTML 文件后,应扫描文档以生成已嵌入页面的所有 SWF 文件的列表 - 这很可能通过 Insert -> Media -> SWF 使用 Dreamweaver 界面完成(由设计师)。
  3. 基于此列表,系统应自动抓取每个 SWF 文件并将它们与 HTML 文件一起上传。为了简单起见,我很高兴所有内容都在同一个目录中。
  4. 将 SWF 重命名为它们原来的名称 + 唯一 ID 以避免覆盖。
  5. 替换 HTML 中 SWF 文件的链接以匹配重命名的文件。
  6. 生成一个指向新创建的演示台的链接 - 这可能会通过 PHP 的 uniqid() 变得独一无二,以防止混淆等。

结果应该是这样的链接:

http://example.com/?view=4h78hg5d

像这样链接到 SWF:

  • BLD020_November_300x250-4h78hg5d.swf
  • BLD020_November_728x90-4h78hg5d.swf
  • BLD020_November_160x600-4h78hg5d.swf

使用我之前创建的模板包装他们上传的 HTML。

我的问题

是否可以自动将伴随的 SWF 文件添加到上传队列中,还是只能手动添加?

如果是后者,我可以采取什么其他方法来实现上述目标?

【问题讨论】:

    标签: php file-upload


    【解决方案1】:

    您的应用能否接受 zip 存档作为上传文件,然后以这种方式提取所需的所有文件?

    这是来自http://php.net/zip.examples#example-819 的示例,它打开一个 zip 存档,输出有关存档的元数据并列出所有文件:

    <?php
    $za = new ZipArchive();
    
    $za->open('test_with_comment.zip');
    print_r($za);
    var_dump($za);
    echo "numFiles: " . $za->numFiles . "\n";
    echo "status: " . $za->status  . "\n";
    echo "statusSys: " . $za->statusSys . "\n";
    echo "filename: " . $za->filename . "\n";
    echo "comment: " . $za->comment . "\n";
    
    for ($i=0; $i<$za->numFiles;$i++) {
        echo "index: $i\n";
        print_r($za->statIndex($i));
    }
    echo "numFile:" . $za->numFiles . "\n";
    ?>
    

    【讨论】:

    • 这可能行得通 - 是通过 PHP 实现的还是更像是一个 asp 的东西?
    【解决方案2】:

    您的问题有一个非常简单的答案:否。您只能上传用户明确发送给您的内容。

    让他们在某处托管 html 文件以及所有相关的图像和 swf 文件可能会更好。

    然后给你网址,然后你使用 curl 下载所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      相关资源
      最近更新 更多