好吧,伙计们,我有个问题。我想通过将链接放入TEXTAREA并点击提交来远程上传(将图像从网站复制到我的服务器)多个图像。我只是不知道如何用多个图像实现这一点。
我可以使用copy()制作一个单独的图像;函数,但不适用于TEXTAREA中的多个条目。
我还想限制远程上传功能最多30个远程链接和一个图像不应超过10MB-但我不知道如何开始。我听说cURL能够做到这一点,我也听说file_get_contents();使用file_put_contents();可以做类似的东西,但我仍然不知道如何自己做。
帮助任何人?:)
您可以对单个图像使用与现在相同的过程,但要在循环中执行。
$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()
}
您需要解析textarea
中的URL。您可以使用带有正则表达式的PHP端。
然后,您可以检查解析后的URL和前30个array_slice()
,如果超过30个则会出错。
然后,您需要从远程服务器复制文件。您可以检查Content-Length
标头,以确保文件在10mb以下。您可以使用HEAD
而不是GET
仅获取标头。
我不熟悉PHP,但我建议如下:
解决多个文件上传问题:
-
通过回车拆分文本区域中的内容
-
然后迭代得到图像
将每个文件的大小保存在一个变量中,但如何获取大小?
- 您可以执行exec(系统)调用来了解文件大小(这需要完整的映像下载,但这是最方便的方法),或者您可以使用Content-Length头值,如果内容长度超过10 MG,则跳过它并移动到下一项
如何下载图像?
- 使用文件放入内容,但要确保将编码作为二进制编码,以保留内容类型