使用PHP在我的Owncloud服务器上上传文件

zed13

最近,我创建了我的owncloud服务器,我需要能够从php表单上传文件,该文件将文件从我的PC传输到我的owncloud服务器。因此,我尝试使用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);
?>

这个帖子和这个命令给我启发

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_INFILECURLOPT_INFILESIZE不是CURLOPT_POSTFIELDS

谢谢你的帮助。//

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ubuntu服务器上上传PHP文件

来自分类Dev

通过php在服务器apache上上传文件

来自分类Dev

PHP的文件上传在服务器上失败

来自分类Dev

在ubuntu服务器上上传PHP文件

来自分类Dev

PHP:图片文件未在服务器上上传?

来自分类Dev

无法使用php上传文件(使用Linode服务器)

来自分类Dev

使用AngularJS和php服务器脚本上传文件

来自分类Dev

使用NSURLSessionUploadTask将文件上传到PHP服务器

来自分类Dev

无法使用PHP将文件上传到服务器

来自分类Dev

在服务器上上传文件

来自分类Dev

Android:在服务器上上传文件

来自分类Dev

在服务器上上传文件

来自分类Dev

在服务器上上传大文件?

来自分类Dev

在服务器上存储上传的文件

来自分类Dev

php上传文件并移至服务器

来自分类Dev

在Ubuntu上安装Owncloud服务器

来自分类Dev

在Ubuntu上安装Owncloud服务器

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

c#使用FTP将本地文件上传到服务器。C#文件位于服务器上

来自分类Dev

我想从php中的localhost上传文件到我的服务器

来自分类Dev

iOS到php服务器的文件上传-我应该允许什么文件大小的图像?

来自分类Dev

Codeigniter / PHP上传PDF文件不会覆盖服务器上的现有文件

来自分类Dev

将文件上传到服务器上的目录-PHP 5.6-现在未复制文件

来自分类Dev

使用php在ftp服务器上显示文件

来自分类Dev

使用php在wordpress服务器上保存文件

来自分类Dev

使用Jasny文件输入使用PHP将文件上传到服务器

来自分类Dev

我想将文件从本地主机上传到php中的服务器

来自分类Dev

我的文件上传到Android中的php服务器有什么问题?

Related 相关文章

  1. 1

    在ubuntu服务器上上传PHP文件

  2. 2

    通过php在服务器apache上上传文件

  3. 3

    PHP的文件上传在服务器上失败

  4. 4

    在ubuntu服务器上上传PHP文件

  5. 5

    PHP:图片文件未在服务器上上传?

  6. 6

    无法使用php上传文件(使用Linode服务器)

  7. 7

    使用AngularJS和php服务器脚本上传文件

  8. 8

    使用NSURLSessionUploadTask将文件上传到PHP服务器

  9. 9

    无法使用PHP将文件上传到服务器

  10. 10

    在服务器上上传文件

  11. 11

    Android:在服务器上上传文件

  12. 12

    在服务器上上传文件

  13. 13

    在服务器上上传大文件?

  14. 14

    在服务器上存储上传的文件

  15. 15

    php上传文件并移至服务器

  16. 16

    在Ubuntu上安装Owncloud服务器

  17. 17

    在Ubuntu上安装Owncloud服务器

  18. 18

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  19. 19

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  20. 20

    c#使用FTP将本地文件上传到服务器。C#文件位于服务器上

  21. 21

    我想从php中的localhost上传文件到我的服务器

  22. 22

    iOS到php服务器的文件上传-我应该允许什么文件大小的图像?

  23. 23

    Codeigniter / PHP上传PDF文件不会覆盖服务器上的现有文件

  24. 24

    将文件上传到服务器上的目录-PHP 5.6-现在未复制文件

  25. 25

    使用php在ftp服务器上显示文件

  26. 26

    使用php在wordpress服务器上保存文件

  27. 27

    使用Jasny文件输入使用PHP将文件上传到服务器

  28. 28

    我想将文件从本地主机上传到php中的服务器

  29. 29

    我的文件上传到Android中的php服务器有什么问题?

热门标签

归档