5

我正在尝试将图像板脚本添加到 Kusaba X,这是一种从远程位置上传文件的方法。

该类对$_FILES['imagefile']['name']和进行了大量检查$_FILES['imagefile']['size'],希望将它们重用于从远程 URI 上传文件。在upload.class.php我有一个变量,其中包含我要上传的图片的 URI。我不想重写它,制作一大堆 if/else 或实际上复制该代码,我在想是否有办法按原样使用它们?

尝试($imgURI 是文件的 http:// 位置):

$_FILES['imagefile']['name'] = $imgURI;

$imagefile_name = fopen($imgURI,"rb");
$_FILES['imagefile']['name'] = $imagefile_name;

但没有运气。

我可以创建一个主变量,在其上运行所有检查并进行大量查找和替换,但它应该包含什么?

希望这个问题足够清楚,自从我做任何 PHP 以来已经有一段时间了,所以我可能会遗漏一些明显的东西。感谢您对此的任何想法/想法

4

3 回答 3

2

$_FILES['imagefile']['name']包含客户端 PC 上文件的名称,通常仅在命名本地系统上的永久文件时用作提示。$_FILES包含可读取文件名的元素是$_FILES['imagefile']['tmp_name'].

但是,这通常是本地文件名。它通常用于类似move_uploaded_file($_FILES['imagefile']['tmp_name'], $permanent_file). 这基本上只是重命名临时文件,不适用于 URL。

于 2013-07-19T21:33:15.810 回答
0

你的代码

$imagefile_name = fopen($imgURI,"rb");
$_FILES['imagefile']['name'] = $imagefile_name;

确实打开了远程 URI,但将资源设置为文件名。

这失败了,因为是一个文件名

将远程文件的内容保存到一个临时文件,并将其名称设置为$_FILES['imagefile']['name'].

然而,这种方法有异味:我不会假设设置$_FILES['imagefile']可以在每个新版本的 PHP 中工作。

于 2013-07-19T21:58:20.613 回答
0

$_FILES 数组不太可能支持下载远程文件。尝试使用 curl 将文件下载到临时位置,然后在 $_FILES 数组中指定。

使用 PHP 将远程文件下载到服务器

于 2013-07-19T21:29:46.877 回答