gpt4 book ai didi

php - 如何使用 curl 将文件上传到目标目录?

转载 作者:IT王子 更新时间:2023-10-28 23:44:12 26 4
gpt4 key购买 nike

我的本​​地机器中有一个文件"/home/test.mp4"

我想上传到/var/www/ok.mp4(上传时改名了)。所有源文件和目标文件都在本地机器中。

如何修复我的部分代码,添加一些东西或改变一些东西?

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_exec($ch);

?>

想想 Ram Sharma,代码更改如下:

<?php
$request = curl_init('http://127.0.0.1/');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'file' => '@' . realpath('/home/test.mp4')
));
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
// close the session
curl_close($request);
?>

出现错误消息:

有效!
这是此服务器的默认网页。
Web 服务器软件正在运行,但尚未添加任何内容。

我用 ftp_put 进行了测试,code1 工作正常。

代码1:

<?php
set_time_limit(0);
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$src = 'd:/upload.sql';
$ftp_path = '/public_html/';
$des = 'upload_ftp_put.sql';
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
$upload = ftp_put($conn_id, $ftp_path.$des, $src, FTP_ASCII);
print($upload);
?>

我本地电脑中的d:/upload.sql文件可以用code1上传到my_ftp_ip/public_html/upload_ftp_put.sql
现在我用 curl 将它重写到 code2 中。

代码2:

<?php
set_time_limit(0);
$ch = curl_init();
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$src = 'd:/upload.sql';
$ftp_path = '/public_html';
$dest = 'upload_curl.sql';
$fp = fopen($src, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://user:pwd@host/'.$ftp_path .'/'. $dest);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($src));
curl_exec ($ch);
$error_no = curl_errno($ch);
print($error_no);
curl_close ($ch);
?>

错误信息输出为6。为什么我的本地文件不能用curl上传到ftp?如何解决?

最佳答案

使用copy() :

copy('/home/test.mp4', '/var/www/ok.mp4');

当操作可以通过文件系统在本地完成时,通过网络堆栈(这是 cURL 所做的)在任何协议(protocol)(HTTP、FTP 等)上运行文件是没有意义的。使用网络更复杂且容易出错。

关于php - 如何使用 curl 将文件上传到目标目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com