【发布时间】:2023-03-05 04:57:01
【问题描述】:
最近我创建了自己的云服务器,我需要能够从 php 表单上传文件,该表单将文件从我的电脑传输到我的自己的云服务器。所以我尝试使用Curl,像这样:
<?php
$url = "5.25.9.14/remote.php/webdav/plus.png";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // -X PUT
curl_setopt($ch, CURLOPT_USERPWD, "root:root"); // --user
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'img/plus.png' => '@'.realpath('img/plus.png')
)
);
$output = curl_exec($ch);
curl_close($ch);
?>
this post 和这个命令启发了我:
curl -X PUT "http://server.com/owncloud/remote.php/webdav/file.zip" --data-binary @"/Users/Root/Downloads/file.zip"
命令行,他在工作,但不是我的 php。我成功上传文件,但文件已损坏,我不知道为什么:/。也许我想念 MIME 类型?获取损坏的文件是否足够?
你知道我哪里错了吗? 最好的问候,Zed13
编辑:当我制作上传文件的文件时,它是数据类型而不是 png,奇怪......
【问题讨论】:
标签: php curl upload server owncloud