


Apakah yang perlu saya lakukan jika terdapat ralat dalam muat naik fail curl dalam php7?
Artikel ini akan memperkenalkan kepada anda cara menyelesaikan ralat muat naik fail curl dalam php7. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.
Baru-baru ini, apabila projek disambungkan ke antara muka perpustakaan bahan akaun awam WeChat, saya menggunakan kaedah siaran curl untuk menyerahkan fail bahan, dan saya mendapati ia terus menggesa
{"errcode":41005,"errmsg":"data media tiada"}
Kandungan kod
$url = self::$add_material . $accessToken . '&type=' . $key; $data = [ 'media' => '@' . $fileName, 'form-data' => $fileInfo, 'description' => json_encode([ 'title' => $fileName, 'introduction' => '' ]), ]; self::init($url); $data = is_array($data) ? http_build_query($data) : $data; curl_setopt(self::$curl, CURLOPT_POST, 1); curl_setopt(self::$curl, CURLOPT_POSTFIELDS, $data); $info = curl_exec(self::$curl); curl_close(self::$curl);
Selepas menyemak dokumentasi rasmi, @ tidak lagi disokong selepas php5.5 Anda mesti menggunakan CurlFile atau tetapkan CURLOPT_SAFE_UPLOAD kepada 1
Dalam php7 curl akan menggesa ralat jika anda menukar CURLOPT_SAFE_UPLOAD seperti berikut: curl_setopt (): Melumpuhkan muat naik selamat tidak lagi disokong kerana kesilapan Kami hanya boleh menggunakan CurlFile untuk mengendalikannya secara jujurTerdapat isu "@" pada permintaan POST berbilang bahagian atau kemudian:
Dayakan CURLOPT_SAFE_UPLOAD
Gunakan CURLFile dan bukannya "@".
$url = self::$add_material . $accessToken . '&type=' . $key; $data = [ 'media' => new \CURLFile($fileName), 'form-data' => $fileInfo, 'description' => json_encode([ 'title' => $fileName, 'introduction' => '' ]), ]; self::init($url); $data = is_array($data) ? http_build_query($data) : $data; curl_setopt(self::$curl, CURLOPT_POST, 1); curl_setopt(self::$curl, CURLOPT_POSTFIELDS, $data); $info = curl_exec(self::$curl); curl_close(self::$curl);
Kemudian kami mendapati tiga perangkap besar dalam penulisan seperti ini ( Saya bodoh)
1. Jika CURLOPT_POSTFILEDS melepasi dalam array content_type, ia adalah multipart/form-data jika CURLOPT_POSTFILEDS lulus dalam json atau key-value& content_type, ia adalah x-www-form_urlencoded; ; tetapi WeChat menyokong tatasusunan yang diluluskan oleh data borang 2. Jika terdapat objek dalam tatasusunan, http_build_query akan mengubahnya menjadi tatasusunan 3. CurlFile hanya boleh membaca laluan dalam pelayan. Jika anda ingin memuat naik alamat di Internet, anda perlu memuat turun fail sementara ke pelayan terlebih dahulu, baca laluan fail (laluan mutlak) melalui CurlFileJadi kami kemudian. melaraskan kod
$url = self::$add_material . $accessToken . '&type=' . $key; $data = [ 'media' => new \CURLFile($fileName), 'form-data' => $fileInfo, 'description' => json_encode([ 'title' => $fileName, 'introduction' => '' ]), ]; self::init($url); curl_setopt(self::$curl, CURLOPT_POST, 1); curl_setopt(self::$curl, CURLOPT_POSTFIELDS, $data); $info = curl_exec(self::$curl); curl_close(self::$curl);Apabila saya fikir saya boleh menyingkirkannya, php7 ada di sini Ralat sintaks notis muncul: Penukaran tatasusunan kepada rentetan Kemudian saya menyemak maklumat dan mendapati bahawa CURLOPT_POSTFIEDLDS tidak menyokong tatasusunan berbilang dimensi Tetapi ralat sintaks notis yang digesa, kami pasti boleh melakukannya Sekat Teruskan melaraskan kod
$url = self::$add_material . $accessToken . '&type=' . $key; $data = [ 'media' => new \CURLFile($fileName), 'form-data' => $fileInfo, 'description' => json_encode([ 'title' => $fileName, 'introduction' => '' ]), ]; self::init($url); curl_setopt(self::$curl, CURLOPT_POST, 1); @curl_setopt(self::$curl, CURLOPT_POSTFIELDS, $data); $info = curl_exec(self::$curl); curl_close(self::$curl);Akhirnya bahan berjaya dimuat naik Saya mendongak dan melihat keadaan sudah gelap Saya sangat gembira sehingga saya cepat-cepat mengelap hidung dan membersihkan selesai.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika terdapat ralat dalam muat naik fail curl dalam php7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)