Приложение Apache / octet-stream создает пустой файл

Я пытаюсь загрузить файл на сервер с помощью приложения Xamarin.Forms.

var content = new MultipartFormDataContent();
content.Add(new StreamContent(new MemoryStream(img)), "file", "image.jpg");
httpClient.PostAsync(uri, MultipartFormDataContent);

Я получаю файл на сервере, используя PHP и класс Symfony UploadedFile.
Эта часть хорошо работает на моем локальном хосте (macOS Sierra Version 10.12.1 / Apache/2.4.23 (Unix)) когда я тестирую, я могу получить файл:

"file" => UploadedFile {#217 ▼
-test: false
-originalName: "image.jpg"-mimeType: "application/octet-stream"-size: 8112955
-error: 0
path: "/Applications/MAMP/tmp/php"filename: "phpWyUBHM"basename: "phpWyUBHM"pathname: "/Applications/MAMP/tmp/php/phpWyUBHM"extension: ""realPath: "/Applications/MAMP/tmp/php/phpWyUBHM"writable: false
readable: false
executable: false
file: false
dir: false
link: false
}

Конфигурация Apache:

upload_max_filesize 32M 32M
post_max_size       32M 32M

Так что я могу переместить файл, и это фактическое изображение, которое я загрузил.

Когда я пытаюсь сделать это на моем демонстрационном сервере (Ubuntu 14.04.5 LTS / Apache/2.4.7 (Ubuntu)) полученный файл фактически пуст, его размер равен 0

"file" => UploadedFile {#217 ▼
-test: false
-originalName: "image.jpg"-mimeType: "application/octet-stream"-size: 0
-error: 0
path: "/tmp"filename: "phppFr9Pr"basename: "phppFr9Pr"pathname: "/tmp/phppFr9Pr"extension: ""realPath: false
writable: false
readable: false
executable: false
file: false
dir: false
link: false
}

Конфигурация Apache:

upload_max_filesize 1000M   1000M
post_max_size       1000M   1000M

Так что я думаю, что проблема в Apache, но я долго искал и не мог найти никаких подсказок, чтобы решить эту проблему.

Благодарю.


РЕДАКТИРОВАТЬ 1

Права доступа к каталогу / tmp:

drwxrwxrwt 13 root root 4096 Nov 15 14:19

Если я попытаюсь опубликовать изображение с почтальоном, /tmp Каталог хорошо создан:

"file" => UploadedFile {#217
-test: false
-originalName: "image.jpg"-mimeType: "image/jpeg"-size: 8112955
-error: 0
path: "/tmp"filename: "php2LIEcm"basename: "php2LIEcm"pathname: "/tmp/php2LIEcm"extension: ""realPath: false
writable: false
readable: false
executable: false
file: false
dir: false
link: false
}

Это означает, что apache и php имеют права на запись в этом /tmp каталог.

0

Решение

Разница в разрешениях /tmp, Пользователь (например, Apache или php), который выполняет ваш скрипт, должен иметь права на write в /tmp а также read от.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]