吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 559|回复: 11
收起左侧

[已解决] PHP CRUL 上传30MB文件超时,怎么解决?【已解决】

[复制链接]
ccadzy 发表于 2023-11-2 11:09
本帖最后由 ccadzy 于 2023-11-2 16:19 编辑

做一个上传视频至抖音的网站。
用的抖音的接口。链接好像没法贴,麻烦大佬们自己查一下了。移动网站应用->视频管理->抖音->视频管理->上传视频     /docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-video/upload-video
我的接口就是普通的  curl  请求,
视频大概30MB,但是请求超时了。服务器的上传速度,带宽啥的,还没查。
问一下大佬们有什么解决办法没。


我的配置是。
memory_limit=256M
max_input_time=1000
max_execution_time=1000


请求代码
https_request($url,$data,0,1,'post',2,$access_token);


function https_request($curl, $data=null, $is_send=0,$https=true, $method='post',$json=0,$header_value=""){
    $ch = curl_init();//初始化
    curl_setopt($ch, CURLOPT_URL, $curl);//设置访问的URL
    curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出

    if($json == 1){
        $data = json_encode($data);

        // 判断是否有header_value
        if(empty($header_value)){           // 没有参数
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Content-Type:application/json',
//                    'Content-Length: '.strlen($data)
                )
            );
        }else{                              // 有参数
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Content-Type:application/json',
                    'access-token:'.$header_value,
//                    'Content-Length: '.strlen($data)
                )
            );
        }


    }elseif($json == 2){
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type:multipart/form-data',
                'access-token:'.$header_value,
            )
        );
    }

    if($https){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不做服务器认证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//不做客户端认证
    }
    if($method == 'post'){
        curl_setopt($ch, CURLOPT_POST, true);//设置请求是POST方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置POST请求的数据
    }

    if($is_send == 1){

        curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型
        curl_setopt($ch, CURLOPT_SSLCERT, __ROOT__.'cert/apiclient_cert.pem');//证书位置
        curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型
        curl_setopt($ch, CURLOPT_SSLKEY, __ROOT__.'cert/apiclient_key.pem');//证书位置


    }


    $str = curl_exec($ch);//执行访问,返回结果
    curl_close($ch);//关闭curl,释放资源

    return $str;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

不一般 发表于 2023-11-2 11:32
增加cURL请求超时时间:你可以通过设置CURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT选项来增加cURL请求的超时时间。这将允许cURL请求更多的时间来完成上传操作。例如:
[PHP] 纯文本查看 复制代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_data);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 设置超时时间为120秒
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // 设置连接超时时间为60秒
// 其他设置
$result = curl_exec($ch);
curl_close($ch);
Do_zh 发表于 2023-11-2 11:32
DaRuiDd 发表于 2023-11-2 11:33
 楼主| ccadzy 发表于 2023-11-2 11:42
Do_zh 发表于 2023-11-2 11:32
这源码看起来真费劲。

我也不知道为什么,明明编辑的时候是有背景色的。。
Do_zh 发表于 2023-11-2 11:46
ccadzy 发表于 2023-11-2 11:42
我也不知道为什么,明明编辑的时候是有背景色的。。

set_time_limit(0);  设置脚本时间为0试试 。
kof21411 发表于 2023-11-2 11:47
在代码前加
set_time_limit(0);
试试
 楼主| ccadzy 发表于 2023-11-2 12:00
本帖最后由 ccadzy 于 2023-11-2 12:02 编辑

可能跟带宽有关??他好像执行了40秒,就自动中断了。
微信截图_20231102115935.png
也不对啊。。。抖音那边掐了,我也不应该返回404啊?
blindcat 发表于 2023-11-2 12:42
ccadzy 发表于 2023-11-2 12:00
可能跟带宽有关??他好像执行了40秒,就自动中断了。

也不对啊。。。抖音那边掐了,我也不应该返回404 ...

40秒是等待服务器响应啊
 楼主| ccadzy 发表于 2023-11-2 13:33
blindcat 发表于 2023-11-2 12:42
40秒是等待服务器响应啊

也就是说。。。我这发了个请求。请求因为太慢没返回,我的程序一直没返回。浏览器不想等了?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表