J'utilise Postman pour intercepter les appels REST de Chrome. Je télécharge un fichier via le module plupload js et il semble fonctionner correctement avec l'interface utilisateur mais ne fonctionne pas dans Postman ou curl.Appel REST pour télécharger un fichier à plUpload
En Postman, l'intercepteur enregistrer comme POST avec un corps brut (par exemple data.txt)
------WebKitFormBoundarycatLhfxNDVGW02wa
Content-Disposition: form-data; name="name"
MOCK_DATA_100.csv
------WebKitFormBoundarycatLhfxNDVGW02wa
Content-Disposition: form-data; name="chunk"
0
------WebKitFormBoundarycatLhfxNDVGW02wa
Content-Disposition: form-data; name="chunks"
1
------WebKitFormBoundarycatLhfxNDVGW02wa
Content-Disposition: form-data; name="filename"
MOCK_DATA_100.csv
------WebKitFormBoundarycatLhfxNDVGW02wa
Content-Disposition: form-data; name="file"; filename="MOCK_DATA_100.csv"
Content-Type: application/vnd.ms-excel
J'ai sauvé le POST intercepté dans Postman puis rediffusé exactement la même POST et cette erreur a généré une message dans ma réponse:
Sorry, our system is experiencing a problem.
<br />(Error code 0)
<br />Error "The file "MOCK_DATA_100.csv" was only partially uploaded."
occurred at line 251 of
../Symfony/Component/HttpFoundation/File/UploadedFile.php
Voici la déclaration boucle copié à partir d'outils de dev chrome:
curl -k 'https://localhost/api/v1/user-contact-data/file' \
-H 'Pragma: no-cache' -H 'Origin: https://localhost' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Accept-Language: en-US,en;q=0.8' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36' \
-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryBQR6SxZD8udgj5et' \
-H 'Accept: */*' \
-H 'Cache-Control: no-cache' \
-H 'Referer: https://localhost' \
-H 'Cookie: WBSESSID=XXXjaaqdv3g6sp3k4729fb9ibq5057p3uviib3v1ba7dd8juhvk9bm6ttv360npp8qioi9a25vs3nmra9t9l7ki43og38jb7sl3bXXX; fileName=MOCK_DATA_100.csv' \
-H 'Connection: keep-alive' \
-H 'DNT: 1' --data-binary $'------WebKitFormBoundaryBQR6SxZD8udgj5et\r\nContent-Disposition: form-data; name="name"\r\n\r\nMOCK_DATA_100.csv\r\n------WebKitFormBoundaryBQR6SxZD8udgj5et\r\nContent-Disposition: form-data; name="chunk"\r\n\r\n0\r\n------WebKitFormBoundaryBQR6SxZD8udgj5et\r\nContent-Disposition: form-data; name="chunks"\r\n\r\n1\r\n------WebKitFormBoundaryBQR6SxZD8udgj5et\r\nContent-Disposition: form-data; name="filename"\r\n\r\nMOCK_DATA_100.csv\r\n------WebKitFormBoundaryBQR6SxZD8udgj5et\r\nContent-Disposition: form-data; name="file"; filename="MOCK_DATA_100.csv"\r\nContent-Type: application/vnd.ms-excel\r\n\r\n\r\n------WebKitFormBoundaryBQR6SxZD8udgj5et--\r\n' \
--compressed
réponse boucle:
{"status":"success"}
Postman crée un fichier vide sans titre sur le serveur et boucle crée le fichier avec le nom correct mais il est aussi vide.
Avez-vous des conseils sur la façon de déboguer cela? Il semble que l'emplacement du fichier est absent de l'instruction curl mais j'ai de la difficulté à attacher le chemin avec -F @MOCK_DATA_20.csv