使用 cURL 将 Pdf 文件上传到另一个网站

特别是与这个特定的线程有关使用 php 将文件上传到网站我想在 PHP 上使用 cURL 来实现这个。

我该如何设置?

以下是我尝试过的。

请注意,我只是通过添加我尝试过的代码来编辑它。

<?php



 if(isset($_POST["submit"])){


 $errors= array();//

 $name = $_FILES['fileToUpload']['name']; 

 $size = $_FILES['fileToUpload']['size']; 

 $type = $_FILES['fileToUpload']['type']; 

 $tmp_name = $_FILES['fileToUpload']['tmp_name']; 

 $upload_ok =1;

 $file_ext=strtolower(end(explode('.',$_FILES['fileToUpload'] 

 ['name'])));//




 $extensions= array("pdf","jpeg","jpg","png");


 $jj = file_get_contents($_FILES['fileToUpload']['tmp_name']);

 $mj = base64_encode($jj);


 if(in_array($file_ext,$extensions)=== false){

  $errors[]="vvvvv.";

 } 


 if($size >= xxx){

  $errors[]='xxx;'

 }


 if(empty($errors)==true){



  echo  "Success </br>";



  $request  = "xxxxxxxxx";


  $headers = array(

    "Authorization: Bearer xxxxxx",

     "Content-type => multipart/form-data",



     "Accept:application/json",

  );






  $data = [


     'voucher_data' => 'base64_encode($tmp_name)',


   'callback_url' => 'xxxxxxxxx'

  ];





  $curl = curl_init();


  curl_setopt_array($curl, array(

    CURLOPT_URL => "xxxxxxxxxx",

    CURLOPT_RETURNTRANSFER => true,

    CURLOPT_ENCODING => "",

    CURLOPT_MAXREDIRS => 10,

    CURLOPT_TIMEOUT => 30,

    CURLOPT_FOLLOWLOCATION => true,

    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

    CURLOPT_CUSTOMREQUEST => "POST",

    CURLOPT_POSTFIELDS =>  $data,

    CURLOPT_HTTPHEADER => $headers

  ));


  $response = curl_exec($curl);


  curl_close($curl);



  var_dump($response);



  }else{

  print_r($errors);

  }





?>

我尝试按照下面的建议使用 curl_file_create($mj) 但在 var_dump 上...它说 bool(false)


德玛西亚99
浏览 151回答 2
2回答

海绵宝宝撒

好吧,在尝试了很多不同的方法之后,我直接将这个值传递给了 post 字段,而不是将它用作数组CURLOPT_POSTFIELDS&nbsp;=>&nbsp;“foo=$mj&callbackurl=url”,它奏效了。这就是我被困的地方。我用另一种方式做了,但没有用。每种情况都是独一无二的。有人可能也需要这个。

梦里花落0921

我看到您想发出一个请求,将文件上传到您自己以外的另一台服务器。在 PHP 5.5 之后,有一个名为 的函数curl_file_create,顾名思义,它用于上传文件。$post = array (&nbsp; &nbsp; 'extra_info' => '123456', // If required.. like user_id for avatar&nbsp; &nbsp; 'file_contents' => curl_file_create ('path/to/file'););$ch = curl_init ($url);curl_setopt ($ch, CURLOPT_POST, 1);curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);$result=curl_exec ($ch);curl_close ($ch);&nbsp;如果您不想使用它,那么有一个非常简单的方法:$args = [];$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, 1);$args['file'] = '@/path/to/file';curl_setopt($ch, CURLOPT_POSTFIELDS, $args);curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);curl_close ($ch);&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP