file_get_contents - 未找到文件。

问题描述 投票:0回答:1

我在这个帖子上跟进了解决方案。

https:/stackoverflow.coma42470821235655。

我收到以下错误信息。

{"success":false,"code":3003,"version":1,"message":"File not found","data":null}

我少了什么?

下面是代码。

$boundary = 'DE(io5Kd5)NB@DQ22CeCfC4p';

define('MULTIPART_BOUNDARY', $boundary);

$header = array('Authorization' => 'Bearer ' . get_id_token(),'Content-Type' => 'Content-Type: multipart/form-data; boundary='.MULTIPART_BOUNDARY);

define('FORM_FIELD', 'file');

$filename = "generated(4).json";
$file_contents = file_get_contents($filename);

$content =  "--".MULTIPART_BOUNDARY."\r\n".
            "Content-Disposition: form-data; name=\"".FORM_FIELD."\"; filename=\"".basename($filename)."\"\r\n\n".
            $file_contents."\r\n";

$content .= "--".MULTIPART_BOUNDARY."--\r\n";

$context = stream_context_create(array(
    'http' => array(
          'method' => 'POST',
          'header' => $header,
          'content' => $content,
    )
));

echo file_get_contents('https://mpop-sit.example.com/product/api/products/import', false, $context);

这就是$content的样子

--DE(io5Kd5)NB@DQ22CeCfC4p
Content-Disposition: form-data; name="file"; filename="generated(4).json"

[
   {
    "categoryId": 80077027,
    "merchant": "b0bc3022-f76a-48ca-9a60-07b33efb90e9",
    "attributes": {
      "merchantSku": "CODE-SKU-INT-1",
      "VaryantGroupID": "Hepsiburada2",
      "Barcode": "8681080599169s",
      "UrunAdi": "Roth Tyler",
      "UrunAciklamasi": "Duis enim duis magna ex veniam elit id Lorem cillum minim nisi id aliquip. Laboris magna id est et deserunt adipisicing tempor eu ea officia ipsum deserunt. Irure occaecat sit aliquip elit ipsum sint dolore quis est amet aute pariatur cupidatat fugiat. Cillum pariatur pariatur occaecat sint. Aliqua qui in exercitation nulla aliquip id ipsum aliquip ad ut excepteur culpa consequat aliquip. Nisi ut ex tempor enim adipisicing anim irure pariatur.\r\n",
      "Marka": "Tisort.ist",
      "tax_vat_rate": "8",
      "GarantiSuresi": 24,
       "kg": "1",
      "Image1": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image2": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image3": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image4": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image5": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "kesim_kalibi": "Regular Fit",
      "kullanici_cinsiyeti": "Erkek",
      "malzeme_": "Pamuklu",
      "yaka_stili": "Bisiklet Yaka",
      "renk_variant_property": "Kırmızı",
      "beden_variant_property": "XS",
      "adet_variant_property": 99999
    }
  },
   {
    "categoryId": 80077027,
    "merchant": "b0bc3022-f76a-48ca-9a60-07b33efb90e9",
    "attributes": {
      "merchantSku": "CODE-SKU-INT-2",
      "VaryantGroupID": "Hepsiburada2",
      "Barcode": "8681080599121s",
      "UrunAdi": "Roth Tyler",
      "UrunAciklamasi": "Duis enim duis magna ex veniam elit id Lorem cillum minim nisi id aliquip. Laboris magna id est et deserunt adipisicing tempor eu ea officia ipsum deserunt. Irure occaecat sit aliquip elit ipsum sint dolore quis est amet aute pariatur cupidatat fugiat. Cillum pariatur pariatur occaecat sint. Aliqua qui in exercitation nulla aliquip id ipsum aliquip ad ut excepteur culpa consequat aliquip. Nisi ut ex tempor enim adipisicing anim irure pariatur.\r\n",
      "Marka": "Tisort.ist",
      "tax_vat_rate": "8",
      "GarantiSuresi": 24,
       "kg": "1",
      "Image1": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image2": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image3": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image4": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "Image5": "https://productimages.example.net/s/27/552/10194862145586.jpg",
      "kesim_kalibi": "Regular Fit",
      "kullanici_cinsiyeti": "Erkek",
      "malzeme_": "Pamuklu",
      "yaka_stili": "Bisiklet Yaka",
      "renk_variant_property": "Mavi",
      "beden_variant_property": "XL",
      "adet_variant_property": 99999
    }
  },
  {
   "categoryId": 80077027,
   "merchant": "b0bc3022-f76a-48ca-9a60-07b33efb90e9",
   "attributes": {
     "merchantSku": "CODE-SKU-INT-3",
     "VaryantGroupID": "Hepsiburada3",
     "Barcode": "8690605661571s",
     "UrunAdi": "Roth Tyler",
     "UrunAciklamasi": "Duis enim duis magna ex veniam elit id Lorem cillum minim nisi id aliquip. Laboris magna id est et deserunt adipisicing tempor eu ea officia ipsum deserunt. Irure occaecat sit aliquip elit ipsum sint dolore quis est amet aute pariatur cupidatat fugiat. Cillum pariatur pariatur occaecat sint. Aliqua qui in exercitation nulla aliquip id ipsum aliquip ad ut excepteur culpa consequat aliquip. Nisi ut ex tempor enim adipisicing anim irure pariatur.\r\n",
     "Marka": "Tisort.ist",
     "tax_vat_rate": "8",
     "GarantiSuresi": 24,
      "kg": "1",
     "Image1": "https://productimages.example.net/s/27/552/10194862145586.jpg",
     "Image2": "https://productimages.example.net/s/27/552/10194862145586.jpg",
     "Image3": "https://productimages.example.net/s/27/552/10194862145586.jpg",
     "Image4": "https://productimages.example.net/s/27/552/10194862145586.jpg",
     "Image5": "https://productimages.example.net/s/27/552/10194862145586.jpg",
     "kesim_kalibi": "Regular Fit",
     "kullanici_cinsiyeti": "Erkek",
     "malzeme_": "Pamuklu",
     "yaka_stili": "Bisiklet Yaka",
     "renk_variant_property": "Sarı",
     "beden_variant_property": "XL",
     "adet_variant_property": 99999
   }
 }
]

--DE(io5Kd5)NB@DQ22CeCfC4p--

这是CURL的版本,它给出了同样的错误。

$request = curl_init('https://mpop-sit.example.com/product/api/products/import');

curl_setopt($request, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer '.get_id_token()
));

// send a file
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    array(
      'file' => '@' . realpath('generated(4).json')
    ));

// output the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);

// close the session
curl_close($request);
php rest file-upload http-post file-get-contents
1个回答
0
投票

也许这个帖子中的例子会帮助你https:/www.php.netmanualenclass.curlfile.php#115569

添加一个用户代理可以帮助你,也许api正在检查这个值以确保请求是有效的。将CURLOPT_SSL_VERIFYPEER设置为false,当你试图向https链接发出请求时,这可以帮助你。

通过使用curl_file_create()来添加文件。

很难回答你的问题,因为我对你使用的API一无所知。

© www.soinside.com 2019 - 2024. All rights reserved.