owncloud服务器上怎么看文件,使用PHP在我的Owncloud服务器上上传文件

博主遇到在PHP中使用CURL上传文件到云服务器(OwnCloud)时,文件上传后出现损坏的问题。通过调整CURL选项,特别是使用`CURLOPT_PUT`代替`CURLOPT_CUSTOMREQUEST`并设置`CURLOPT_INFILE`和`CURLOPT_INFILESIZE`,最终成功解决了问题。此解决方案对于遇到类似问题的PHP开发者具有参考价值。
摘要由CSDN通过智能技术生成

最近我创建了自己的云服务器,我需要能够从php表单上传文件,将文件从我的电脑传输到我自己的云服务器.所以我尝试使用Curl,像这样:

$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,奇怪……

解决方法:

我也有上传到owncloud的问题.有相同的症状,命令行curl工作,但不是PHP curl调用.

感谢你的帖子,我能够让它运作起来.这对我有用

// upload backup

$file_path_str = '/tmp/' . date('Ymd') . '.tar.gz';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://server/remote.php/webdav/backups/' . basename($file_path_str));

curl_setopt($ch, CURLOPT_USERPWD, "user:pass");

curl_setopt($ch, CURLOPT_PUT, 1);

$fh_res = fopen($file_path_str, 'r');

curl_setopt($ch, CURLOPT_INFILE, $fh_res);

curl_setopt($ch, CURLOPT_INFILESIZE, filesize($file_path_str));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); // --data-binary

$curl_response_res = curl_exec ($ch);

fclose($fh_res);

不同之处是:

> CURLOPT_PUT而不是CURLOPT_CUSTOMREQUEST

> CURLOPT_INFILE和CURLOPT_INFILESIZE而不是CURLOPT_POSTFIELDS

谢谢你的帮助.

//

标签:owncloud,php,server,curl,upload

来源: https://codeday.me/bug/20190824/1710184.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值