Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将表单输入文件替换为直接文件上载_Php_Curl_Upload - Fatal编程技术网

Php 将表单输入文件替换为直接文件上载

Php 将表单输入文件替换为直接文件上载,php,curl,upload,Php,Curl,Upload,我正在用php开发服务器端Youtube上传程序。使用我成功地将视频文件上传到Youtube。但是,我不想手动选择文件,但我想上传一个已经在我的服务器上的文件。 我知道filename/-path(如果这对我有任何帮助的话,我也会将视频base64编码成类似的代码),我还拥有Youtube所需的所有密钥和令牌。但是,我不知道如何将所有这些信息转换为适当的http post <form action="<?php echo($response->url); ?>?nextu

我正在用php开发服务器端Youtube上传程序。使用我成功地将视频文件上传到Youtube。但是,我不想手动选择文件,但我想上传一个已经在我的服务器上的文件。 我知道filename/-path(如果这对我有任何帮助的话,我也会将视频base64编码成类似的代码),我还拥有Youtube所需的所有密钥和令牌。但是,我不知道如何将所有这些信息转换为适当的http post

<form action="<?php echo($response->url); ?>?nexturl=<?php echo(urlencode($nexturl)); ?>" method="post" enctype="multipart/form-data">
   <input id="file" type="file" name="file"/>
   <input type="hidden" name="token" value="<?php echo($response->token); ?>"/>
   <input type="submit" value="go" />
</form>

根据您提供的url中找到的脚本,我将首先尝试以下操作:

$ch = curl_init($response->url."?nexturl=".urlencode($nexturl));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
    "file"=>"@/path/to/file.avi",
    "token"=>$response->token
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch);

我仍然建议使用卷发,我认为这是你最好的选择。谢谢khael!这是完美的解决方案!