上传HTML文件并自动上传随播广告资源

时间:2011-10-25 22:37:24

标签: php file-upload

方案

我工作的公司最近爆炸了(我在它启动后仅开始了几年)我们现在有了第二个开发人员和大约5个设计师。

之前,我自己开发了一些开发人员,包括一个展示网页,可以将横幅广告发送给客户 - example here

我为此开发了自己的模板系统,它只是在{300x250}这样的模板中替换了标记,并从行中指定的目录中选取了一个横幅,该行代表了具有匹配大小的作业。

设置其中一个的过程是:

  1. 连接到FTP并将文件(swfs)上传到给定目录。
  2. 登录phpMyAdmin并在表格中创建一条记录,其中包含有关文件路径,客户端名称和要使用的模板的信息。
  3. 如果需要,创建一个新模板 - 即如果有不寻常的横幅广告。
  4. 正如你所看到的,对于没有我的技能组合的人来说,上面几乎是不可能的(即设计师)。

    我的想法

    我想要做的是创建一个将在我们的暂存域中托管的模板,以及一个将通过$_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()使其独一无二,只是为了阻止混淆等。
    7. 结果应该是这样的链接:

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

      链接到这样的SWF:

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

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

      我的问题

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

      如果是后者,我可以采取哪种方法来实现上述目标?

2 个答案:

答案 0 :(得分:2)

您的应用可以接受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";
?>

答案 1 :(得分:1)

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

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

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