Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否手动设置$\u文件值?(正在尝试从URI上载,并希望使用现有代码)_Php_File_Post_Upload - Fatal编程技术网

Php 是否手动设置$\u文件值?(正在尝试从URI上载,并希望使用现有代码)

Php 是否手动设置$\u文件值?(正在尝试从URI上载,并希望使用现有代码),php,file,post,upload,Php,File,Post,Upload,我正在尝试将imageboard脚本添加到Kusaba X中,这是一种从远程位置上传文件的方法 该类对$\u文件['imagefile']['name']和$\u文件['imagefile']['size']进行了大量检查,希望将它们重新用于从远程URI上载文件。在upload.class.php中,我有一个变量,其中包含我要上传的pic的URI。我不想把它全部重写,制作一大堆if/else,或者实际上复制那些代码,我在想是否有办法使用它们 已尝试($imgURI是文件的http://位置):

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

该类对
$\u文件['imagefile']['name']
$\u文件['imagefile']['size']
进行了大量检查,希望将它们重新用于从远程URI上载文件。在
upload.class.php
中,我有一个变量,其中包含我要上传的pic的URI。我不想把它全部重写,制作一大堆if/else,或者实际上复制那些代码,我在想是否有办法使用它们

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

但是没有运气

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


希望问题足够清楚,我已经有一段时间没有使用PHP了,所以我可能遗漏了一些明显的东西。感谢您对此提出任何想法。

美元文件阵列不太可能支持下载远程文件。尝试使用curl将文件下载到临时位置,然后在$\u FILES数组中指定该位置


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

但是,这通常应为本地文件名。它通常用于
move\u-uploaded\u-file($\u-FILES['imagefile']['tmp\u-name'],$permanent\u-file)
等代码中。这基本上只是重命名临时文件,不适用于URL。

您的代码

$imagefile_name = fopen($imgURI,"rb");
$_FILES['imagefile']['name'] = $imagefile_name;
打开远程URI,但将资源设置为文件名

此操作失败,因为是文件名

将远程文件的内容保存到临时文件,并将其名称设置为
$\u FILES['imagefile']['name']

然而,这种方法的味道是:我不会假设将$\u文件['imagefile']设置为在每个新版本的PHP中工作

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