php / php/php-src

cURL - Send 2+ files using the same parameter name ("file[]")

Ouverte
#15,859 4 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Extension: curl Feature Status: Verified
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

The pull request https://github.com/php/php-src/pull/8292 made it possible to send an array of parameters of the same name.

However, it doesn't seem to support files:

I'm using PHP 8.3, but I'm not succeeding in doing this:

curl_setopt($ch, CURLOPT_HTTPHEADER, [
	'Content-Type: multipart/form-data'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
	'file' => [
		new CURLFile($file1, posted_filename: 'File1.jpg'),
		new CURLFile($file2, posted_filename: 'File2.jpg')
	]
]);

PHP Fatal error: Uncaught Error: Object of class CURLFile could not be converted to string

Would it be possible to fix this, please?

Thank you very much!

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par retracer la gestion PHP de cURL pour CURLOPT_POSTFIELDS, les valeurs CURLFile et les tableaux multipart/form-data, en prenant comme points d’entrée la reproduction dans l’issue et la modification antérieure des paramètres de tableau dans pull request 8292. Vérifiez le comportement avec deux objets CURLFile sous un même nom de champ ; le travail est terminé lorsque les deux fichiers sont encodés et envoyés sans l’erreur fatale de conversion d’objet, et qu’une couverture de régression a été ajoutée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, php
Domaine
api, backend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
58/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.