我正在尝试通过他们的api将文件上传到vshare.io。他们提供了一个PHP脚本:
<?php
if(!function_exists('curl_init')) {
die('CURL functions are not available. Debian: apt-get install php5-curl');
}
$file_path = ''; // Example: $file_path = '/home/files/file.exe';
$token = ''; // You can get your TOKEN from the following page http://vshare.io/api.html
$post = array(
'token' => $token,
'filesize' => filesize($file_path),
'Filedata' => '@' . $file_path
);
// init
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://upload.vshare.io/upload_api.php');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect: "));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$output = json_decode($result, TRUE);
if(isset($output['upload'], $output['video'], $output['fileid']) && strlen($output['fileid']) == 7 && $output['upload'] == 1) {
if($output['video'] == '1') {
$file_type = 'video';
} elseif($output['video'] == '0') {
$file_type = 'file';
}
echo 'File Type: ' . $file_type . ' | File Link: http://vshare.io/d/' . $output['fileid'];
} else {
echo 'Error: ' . $output['msg'];
}
?>
我在Ubuntu中插入了我的令牌和正确的文件路径,但是当启动脚本时它将运行大约1分钟,然后它将打印“错误:”(脚本的最后一行说这样做)。没有文件上传到我的帐户
任何提示?
答案 0 :(得分:0)
可能有两个原因。首先是您的用户代理,您尚未设置它。今天最多的网站限制了BOT,所以你应该为你的CURL设置它:
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
第二个原因是CURL过程超时,所以你什么都没有,也没有任何消息。
试试这个
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 400);