【发布时间】:2019-07-04 16:53:11
【问题描述】:
我想在 php 中使用 curl 将文件从本地上传到服务器,而不使用表单(即 html)。
我的php版本是5.2.6。
我尝试了很多不同的方法并做了很多研究(使用php中的curl将文件上传到服务器),但是google的解决方案无法解决我的问题。
下面是我的代码:
// open file descriptor
$fp = fopen ("user.com/user/fromLocal.txt", 'w+') or die('Unable to write a file');
// file to download
$ch = curl_init('C:/wamp/www/user/fromLocal.txt');
// enable SSL if needed
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// output to file descriptor
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
// set large timeout to allow curl to run for a longer time
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
curl_setopt($ch, CURLOPT_USERAGENT, 'any');
// Enable debug output
curl_setopt($ch, CURLOPT_VERBOSE, true);
echo $ch;
echo $fp;
curl_exec($ch);
curl_close($ch);
fclose($fp);
预期输出:
文件可以上传到服务器并查看。
实际输出:
无法写入文件
【问题讨论】:
-
@AlessandroBellanda 解决方案没有解决我的问题
-
user.com/user/fromLocal.txt所以您希望 PHP 侵入user.com服务器并写入文件?这是行不通的。 -
@emix 抱歉,我是 php 新手。请原谅我的错误并感谢您的回复。
-
您需要决定实际的上传方法。仅使用 curl 并不能完全消除它。服务器需要提供一种接收文件的方法。除非您详细说明您的配置方式,例如PUT 请求通过,或设置脚本来接收它,这是无法回答的。此代码示例通常用于下载,而不是上传,顺便说一句。
标签: php curl file-upload