如何使用 PHP-Curl 将大文件上传到 Onedrive

物联网团队

我需要将大于 4MB 的文件上传到 onedrive 帐户。为此,我正在尝试使用 PHP 和 curl。有没有人尝试过这个选项,请帮我解决这个问题。

苏米亚·萨拉桑

$url=' https://graph.microsoft.com/v1.0/me/drive/root:/filename:/createUploadSession ';

    $data= '{}';
    $header = array('Content-Type: json',
        "Cache-Control: no-cache",
        "Pragma: no-cache",
        "Authorization: bearer {Access Token}");
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

从结果中获取uploadURL,

    $graph_url = $result['uploadUrl'];
    $fragSize = 320 * 1024;
    $file = file_get_contents($filename_location);
    $fileSize = strlen($file);
    $numFragments = ceil($fileSize / $fragSize);
    $bytesRemaining = $fileSize;
    $i = 0;
    $ch = curl_init($graph_url);
    while ($i < $numFragments) {
        $chunkSize = $numBytes = $fragSize;
        $start = $i * $fragSize;
        $end = $i * $fragSize + $chunkSize - 1;
        $offset = $i * $fragSize;
        if ($bytesRemaining < $chunkSize) {
            $chunkSize = $numBytes = $bytesRemaining;
            $end = $fileSize - 1;
        }
        if ($stream = fopen($filename_location, 'r')) {
            // get contents using offset
            $data = stream_get_contents($stream, $chunkSize, $offset);
            fclose($stream);
        }

        $content_range = " bytes " . $start . "-" . $end . "/" . $fileSize;
        $headers = array(
            "Content-Length: $numBytes",
            "Content-Range:$content_range"
        );
        curl_setopt($ch, CURLOPT_URL, $graph_url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, constant('CURL_SSL_VERIFYPEER_STATUS'));
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $server_output = curl_exec($ch);
        $info = curl_getinfo($ch);

        $bytesRemaining = $bytesRemaining - $chunkSize;
        $i++;
    }

当您传递最后一组数据时,它应该是正确的数据字节。否则上传会话将失败。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用php将文件从我的网站上传到我的个人onedrive帐户?

来自分类Dev

使用php curl将文件上传到Google云端硬盘

来自分类Dev

如何使用OneDrive REST API将文件上传到OneDrive?

来自分类Dev

PHP CURL文件上传被保存到Sharepoint而不是OneDrive

来自分类Dev

如何使用OneDrive SDK将OneDrive上的文件夹/文件上传到Windows 10 UWP

来自分类Dev

如何使用OneDrive API将文件上传到OneDrive上的共享文件夹中?

来自分类Dev

如何将文件下载/上传到用户OneDrive

来自分类Dev

使用 PHP CURL 将包含 TAR 的文件上传到 REST PUT API,无需解压

来自分类Dev

使用 cURL 将图像上传到 PHP 服务器?

来自分类Dev

如何使用curl将文件上传到Atlassian Confluence页面

来自分类Dev

使用OneDrive iOS SDK将图像上传到OneDrive中的文件夹

来自分类Dev

如何通过php和curl正确获取onedrive访问令牌

来自分类Dev

使用curl将文件上传到django服务器

来自分类Dev

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

来自分类Dev

PHP cURL文件上传到网站

来自分类Dev

使用OneDrive File Picker API将文件上传到默认文件夹

来自分类Dev

将大文件上传到OneDrive共享文件夹问题(createUploadSession错误)

来自分类Dev

如何使用php将csv文件上传到mysql?

来自分类Dev

如何使用XAMPP将Ajax文件上传到php脚本

来自分类Dev

cURL POST文件到OneDrive

来自分类Dev

使用BITS协议将文件上传到OneDrive时出现400错误

来自分类Dev

通过php上传OneDrive

来自分类Dev

iOS使用REST API将图片上传到OneDrive

来自分类Dev

将ViewOnly文件上传到OneDrive

来自分类Dev

将ViewOnly文件上传到OneDrive

来自分类Dev

无法使用PHP将视频上传到Facebook页面,但可以使用curl

来自分类Dev

使用PHP将文件上传到FTP而不损坏文件

来自分类Dev

无法使用PHP将文件上传到文件夹

来自分类Dev

PHP使用cURL将图像上传到远程服务器

Related 相关文章

  1. 1

    如何使用php将文件从我的网站上传到我的个人onedrive帐户?

  2. 2

    使用php curl将文件上传到Google云端硬盘

  3. 3

    如何使用OneDrive REST API将文件上传到OneDrive?

  4. 4

    PHP CURL文件上传被保存到Sharepoint而不是OneDrive

  5. 5

    如何使用OneDrive SDK将OneDrive上的文件夹/文件上传到Windows 10 UWP

  6. 6

    如何使用OneDrive API将文件上传到OneDrive上的共享文件夹中?

  7. 7

    如何将文件下载/上传到用户OneDrive

  8. 8

    使用 PHP CURL 将包含 TAR 的文件上传到 REST PUT API,无需解压

  9. 9

    使用 cURL 将图像上传到 PHP 服务器?

  10. 10

    如何使用curl将文件上传到Atlassian Confluence页面

  11. 11

    使用OneDrive iOS SDK将图像上传到OneDrive中的文件夹

  12. 12

    如何通过php和curl正确获取onedrive访问令牌

  13. 13

    使用curl将文件上传到django服务器

  14. 14

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

  15. 15

    PHP cURL文件上传到网站

  16. 16

    使用OneDrive File Picker API将文件上传到默认文件夹

  17. 17

    将大文件上传到OneDrive共享文件夹问题(createUploadSession错误)

  18. 18

    如何使用php将csv文件上传到mysql?

  19. 19

    如何使用XAMPP将Ajax文件上传到php脚本

  20. 20

    cURL POST文件到OneDrive

  21. 21

    使用BITS协议将文件上传到OneDrive时出现400错误

  22. 22

    通过php上传OneDrive

  23. 23

    iOS使用REST API将图片上传到OneDrive

  24. 24

    将ViewOnly文件上传到OneDrive

  25. 25

    将ViewOnly文件上传到OneDrive

  26. 26

    无法使用PHP将视频上传到Facebook页面,但可以使用curl

  27. 27

    使用PHP将文件上传到FTP而不损坏文件

  28. 28

    无法使用PHP将文件上传到文件夹

  29. 29

    PHP使用cURL将图像上传到远程服务器

热门标签

归档