我有一个非常简单的PHP代码将文件上传到远程服务器; 我这样做的方式(正如其他一些解决方案中所建议的那样)是使用cUrl上传文件.
这是我的代码:
$ch = curl_init("http://www.remotesite.com/upload.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('fileupload' => '@'.$_FILES['Filedata']['tmp_name']));
echo curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
服务器正在运行PHP 5.5.0,看来,@filename已经在PHP> = 5.5.0被弃用陈述这里下CURLOPT_POSTFIELDS的说明,因此,我得到这个错误:
Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in ...
Run Code Online (Sandbox Code Playgroud)
有趣的是,除了基本的类概述之外,php.net上的这个类绝对没有任何意义.没有示例,没有方法或属性的描述.这里基本上是空白的.我知道这是一个全新的课程,几乎没有文档和很少的实际使用,这就是为什么几乎没有任何相关性出现在谷歌搜索或此类Stackoverflow上.
我想知道是否有人使用过这个CURLFile类,可以帮助我或者给我一个例子,在我的代码中使用它代替@filename.
编辑:
我想添加我的"upload.php"代码; 此代码适用于传统的@filename方法,但不再使用CURLFile类代码:
$folder = "try/";
$path = $folder . basename( $_FILES['file']['tmp_name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['file']['tmp_name']). " has been uploaded";
}
Run Code Online (Sandbox Code Playgroud)
最终编辑: …