簡體   English   中英

如何在yii2中通過cUrl方法發布文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM