[英]How to post a file by cUrl method in yii2
我將附加控制器中的文件並完成
$filePath = Yii::getAlias("@backend/web/uploads/".$filename);
添加此文件后,它將發布到操作URL。 我嘗試使用
$request = curl_init($url_path);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'filedata' => $file_path
));
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
但這不起作用。 我需要yii2上的解決方案
您應該使用'file'=>'@'和curl_setopt($ curl_handle,CURLOPT_SAFE_UPLOAD,false);
在PHP 5.6+上工作和測試的示例 :
服務器端(index.html):
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select file to upload:
<input type="file" name="myf" id="myf">
<input type="submit" value="Upload" name="submit">
</form>
</body>
</html>
服務器端(upload.php):
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo $_FILES["myf"]["tmp_name"];
move_uploaded_file($_FILES["myf"]["tmp_name"], 'f.dat');
?>
客戶端(curl-test.php),您需要:
<?php
$args['myf'] = '@/Users/Oleg/Temp/curl-test-php/example.txt';
$request = curl_init('http://domain.ru/upload/upload.php');
curl_setopt($request, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $args);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
curl_close($request);
?>
關於CURLOPT_SAFE_UPLOAD的https://wiki.php.net/rfc/curl-file-upload ,以及在需要安全解決方案時使用不推薦使用的方法的正確方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.