2017-02-06 2 views
1

Я тестирую свой API с помощью POSTMAN, и когда я пытаюсь отправить любой файл, содержимое $ request-> files-> all() всегда пуст.

$ request-> server-> Параметры ["CONTENT_LENGTH"], похоже, меняются в зависимости от размера файла. Но я не нашел способ достичь содержимого файла.

Пробовал также с $ _FILES, но тот же результат.

Я даже сделал var_dump ($ _ FILES); в моем app_dev.php непосредственно перед тем, как достичь чего-либо еще из рамок Symfony.

Мой php.ini, кажется, хорошо: file_uploads: на upload_max_filesize: более чем достаточно post_max_size: более чем достаточно

В POSTMAN Я попробовал оба способа отправки файла: файл двоичный и форм-данных ,

почтальоном пример кода выглядит следующим образом с использованием форм-данных:

PUT /retain_inspecciones/web/app_dev.php/api/planningfiles/6?files=true HTTP/1.1 
Host: symfony.dev 
symfonytoken: Bearer my-token 
Cache-Control: no-cache 
Postman-Token: 9c9cd91a-99f2-57ab-a290-966074b219f3 
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW 

------WebKitFormBoundary7MA4YWxkTrZu0gW 
Content-Disposition: form-data; name="fileName"; filename="" 
Content-Type: 


------WebKitFormBoundary7MA4YWxkTrZu0gW-- 

Я не уверен, почему та часть, где файл должен быть пустая строка и Content-Type пуст. Но похоже, что POSTMAN это делает.

Любая идея?

+0

PUT не POST ... – CBroe

+0

@CBroe Я думаю, что в этом случае это не имеет значения, я захватил запрос перед обработкой метода. И я проверил их обоих. В любом случае я хочу использовать PUT, так как я обновляю объект, а не создаю его. $ _FILES должен присутствовать как в методе POST, так и в PUT, не так ли? Я имею в виду ... Я хочу отправить больше, чем файл по запросу. Является ли это возможным? – Kynethix

+0

Нет, $ _FILES для файлов, загружаемых только через POST. Если вы хотите поддержку PUT, то вы должны реализовать это самостоятельно: http://php.net/manual/en/features.file-upload.put-method.php (если Symfony уже делает это для вас.) – CBroe

ответ

0

Наконец-то я решил попробовать завивать вместо Postman, и это сработало с первой попытки.

Я не знаю, как завиток отличается от POSTMAN при построении запроса, но я доволен им.

+0

Вы делать POST с завитом? – Archi

+0

Я делаю это: curl -X PUT "url" -F "file = @ filename" -b "token = token" – Kynethix

+0

У меня такая же проблема Kynethix вы можете ответить на мой вопрос? https://stackoverflow.com/q/44352796/1395965 – numerah