1

好的,我有一个问题,伙计们。我想通过将链接放入 TEXTAREA 并点击提交来远程上传(将图像从站点复制到我的服务器)多个图像。我只是不知道如何使用多个图像来实现这一点。

我可以使用 copy(); 使用单个图像来制作它。函数,但不适用于 TEXTAREA 中的多个条目。

我还想将远程上传功能限制为最多 30 个远程链接,并且一张图片不应超过 10MB - 但我不知道如何开始。我听说 cURL 能够做到这一点,我还听说 file_get_contents(); 与 file_put_contents(); 可以做类似的事情,但我仍然不知道如何自己做。

帮助任何人?:)

4

3 回答 3

1

您可以使用与现在处理单个图像相同的过程,但要循环执行。

$lines = explode("\n", $_POST['textarea']);
if(count($lines) > 30) {
  die('Too many files');
}
foreach($lines as $line) {
  $srcfile = trim($line);
  //copy $srcfile here
  //check size of the file with filesize()
}
于 2011-05-29T11:18:46.983 回答
1

您需要从textarea. 你可以在这个 PHP 端使用正则表达式。

然后,您可以检查已解析的 URL 和array_slice()前 30 个,如果超过 30 个则错误。

然后,您需要从远程服务器复制文件。您可以检查Content-Length标头以确保文件小于 10mb。您可以使用HEAD而不是仅获取标题GET

于 2011-05-29T11:19:16.403 回答
1

我不熟悉 PHP,但我建议以下内容:

解决多文件上传问题:

  • 用回车符分割文本区域的内容

  • 然后迭代它们以获取图像

将每个文件的大小保存在变量中,但是如何获取大小?

  • 您可以执行 exec(系统)调用来了解文件大小(这需要完整的图像下载,但这是最方便的方法),或者您可以使用 Content-Length 标头值,如果内容长度超过 10 MG 然后跳过它并移至下一个项目。

如何下载图像?

  • 使用文件放置内容,但确保将编码设置为二进制编码以保留内容类型。
于 2011-05-29T11:22:28.447 回答