共计 3218 个字符,预计需要花费 9 分钟才能阅读完成。
这是快手的图床接口
- curl -H “Content-Type: application/json” -X POST -d ‘{“mediaType”:”image”,”token”:”xxx”,”fileName”:” 图片地址 ”,”uploadSource”:”app_cp”}’ “https://onvideoapi.kuaishou.com/api/video/upload/complete_upload?source=cp&__redirectURL=https%3A%2F%2Fonvideo.kuaishou.com%2Fhub%2Fcreate%2Fmaterial%3Fsource%3Dcp” -H “Cookie: xxx” -H “Origin: https://onvideo.kuaishou.com” -H “Referer: https://onvideo.kuaishou.com/” -H “Host: onvideoapi.kuaishou.com”
复制代码
这是我最开始的写法
- <?php
- function PVUpload($file) {
- $post[‘file’] = file_path($file);
- $imgurl2 = get_curl($file,’https://onvideoapi.kuaishou.com/api/video/upload/complete_upload?source=cp&__redirectURL=https%3A%2F%2Fonvideo.kuaishou.com%2Fhub%2Fcreate%2Fmaterial%3Fsource%3Dcp’, $post, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36’);
- echo $file;
- $imgurl2 = json_decode($imgurl2, true);
- if(!empty($imgurl2)) {
- $imgurl= $imgurl2[‘data’][‘mediaUrl’];
- } else {
- $imgurl= ”;
- }
- return $imgurl;
- }
-
- function get_curl($imgfile, $url, $post = 0, $ua = 0) {
- $img = $imgfile;
- $postData = array(
- “mediaType” => “image”,
- “token” => “xxx”,
- “fileName” => $img,
- “uploadSource” => “app_cp”
- );
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
- // 不验证证书
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- // 最大执行时间
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
- curl_setopt($ch, CURLOPT_TIMEOUT, 120);
- $httpheader[] = “Content-Type: application/json”;
- $httpheader[] = “Cookie: xxx”;
- $httpheader[] = “Origin: https://onvideo.kuaishou.com”;
- $httpheader[] = “Referer: https://onvideo.kuaishou.com/”;
- $httpheader[] = “Host: onvideoapi.kuaishou.com”;
- //$ip = mt_rand(48, 140) . “.” . mt_rand(10, 240) . “.” . mt_rand(10, 240) . “.” . mt_rand(10, 240);
- // 随机 ip
- //$httpheader[] = ‘CLIENT-IP:’ . $ip;
- //$httpheader[] = ‘X-FORWARDED-FOR:’ . $ip;
- curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
- //curl_setopt($ch, CURLOPT_ENCODING, “gzip”);
- //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $ret = curl_exec($ch);
- curl_close($ch);
- return $ret;
- }
-
- function file_path($file) {
- if (class_exists(‘CURLFile’)) {
- return $post[‘file’] = new CURLFile(realpath($file));
- } else {
- return $post[‘file’] = ‘@’ . realpath($file);
- }
- }
- ?>
复制代码
测试了很多遍,上传不了文件。来个大佬指点一下,谢谢!
|
网友回复:
注册 : 来个吴彦祖指点一下
zhongziso: 量了一下我的不止 18cm,绑定
zhongziso: $ua 这个变量有赋值,没看到代码调用啊
qq53988545: UA 这个不写都可以,第一个命令。使用 curl 命令行测试可以上传
wwt654: 对比一下自己的 curl 发出去的包和命令行的有什么差异吧
zhongziso: 那是不是路径的问题,我看你获取了文件的绝对路径 $post[‘file’],但是没有调用,方法里还是用的 $file
sdqu: 没你想的那么简单,数据是在 token 里面 {“mediaType”:”image”,”token”:”Cg51cGxvYWRxlci50b2tlbhKBAqWKeXQRSPP_f8jVshavPTQKc1MWJUCoDJmhYn9ERNe289JCYyqTIVepamRJfamsxoem6ObW0EJ1bZvLVetkIsUwEJEtEW16M91396cm9pP5uxR_djdMBtFxqOtyVfbx5jJ2wY5CTKjzEzpLjTdWQTdnLpc_7BLQj6cTdofUaMgf_1lVoZL31jb3sl2Xw9JIlHkAynPYvF1vdJWPUcZySfr0dDz0nxVvECXZhjVpoKWc02L7KNSZ0YwAV0HBvUdpXS9dyJZv4TzYYheJ5wtd_DmKNPVUY6IG8JGXHP-g3lomFvI2ZUpy3_l9klSbaoxoeVOACn_11Tx451jLHmVrrtWQGhK-2iGxzJGIn-mQHYRspHbwVkIoBTAC”,”fileName”:”screenshot.png”,”uploadSource”:”picasso_onvideo”} 复制代码
wwt654: 顶一下。。。。
920: 能帮改一下吗?谢谢
注册 : 我试图看你怎么上传的,但你这变量传来传去的,你可有弄明白你传入的 file 跟 imgfile 是啥?我觉得你再慢慢理清楚就好。