Intereting Posts
Как добавить поддержку curl для PHP 5 в CentOS Как закрепить папку и загрузить ее с помощью php? Хранение сеансов в таблице DB не работает (с использованием Zend_Session_SaveHandler_DbTable) Echo / напечатать jpg-изображение с php, для безопасности? Проверьте, была ли еще вызвана функция если утверждения в php-шаблонах с использованием tpl Как удалить / удалить файл cookie на php? Условия ошибки загрузки файлов PHP Пространство имен php, называемое по умолчанию PHP или Apache, кажется, кэшируют файлы, прочитанные через file_get_contents или включают (нежелательное поведение) Как добавить прослушиватель событий в динамически добавленное поле с помощью Symfony Forms Как проверить последний цикл при использовании для цикла в php? почему мой сценарий не получает значения, которые я цели Обнаруживать, запускается ли скрипт PHP в интерактивном режиме или нет. Как получить все записи, обновленная дата которых составляет менее 30 дней в php

Laravel 5.2 Пробный тест загрузки загруженного файла

Я только что обновился с Laravel 5.1 до 5.2, а ранее успешные тесты теперь терпят неудачу: «Возможно, было исключено исключение?»

There were 3 failures: 1) TRP\Nps\Tests\FileHandlerControllerTest::testCSVFileUploadImportsRecipients Invalid JSON was returned from the route. Perhaps an exception was thrown? /home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:354 /home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:316 /home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:255 /home/vagrant/Code/nps/tests/FileHandlerControllerTest.php:56 

Регистрируя фактический ответ самого теста, я вижу следующее:

UploadedFile.php строка 235: Файл «FileHandlerCSV.csv»; не был загружен из-за неизвестной ошибки.

Что не слишком полезно. Мой метод mockFileUpload выглядит следующим образом:

 /** * Mock a file upload */ public function mockFileUpload($fullPathToFile, $type = null, $errorCode = 0) { $fs = new Filesystem(); // Copy the "upload" to a temp file $tmpFile = tempnam(sys_get_temp_dir(), "testupload"); $fs->copy($fullPathToFile, $tmpFile); // If we haven't been given it, find the Mime type of a file if (!$type) { $type = $fs->mimeType($fullPathToFile); } return new UploadedFile( $tmpFile, $fs->name($fullPathToFile) . '.' . $fs->extension($fullPathToFile), $type, $fs->size($tmpFile), $errorCode, true // $test ); } 

И метод Симфонии, который возвращает ошибку (также бесполезный …)

 /** * Returns an informative upload error message. * * @return string The error message regarding the specified error code */ public function getErrorMessage() { static $errors = array( UPLOAD_ERR_INI_SIZE => 'The file "%s" exceeds your upload_max_filesize ini directive (limit is %d KiB).', UPLOAD_ERR_FORM_SIZE => 'The file "%s" exceeds the upload limit defined in your form.', UPLOAD_ERR_PARTIAL => 'The file "%s" was only partially uploaded.', UPLOAD_ERR_NO_FILE => 'No file was uploaded.', UPLOAD_ERR_CANT_WRITE => 'The file "%s" could not be written on disk.', UPLOAD_ERR_NO_TMP_DIR => 'File could not be uploaded: missing temporary directory.', UPLOAD_ERR_EXTENSION => 'File upload was stopped by a PHP extension.', ); $errorCode = $this->error; $maxFilesize = $errorCode === UPLOAD_ERR_INI_SIZE ? self::getMaxFilesize() / 1024 : 0; $message = isset($errors[$errorCode]) ? $errors[$errorCode] : 'The file "%s" was not uploaded due to an unknown error.'; return sprintf($message, $this->getClientOriginalName(), $maxFilesize); } 

Я подтвердил, что файл находится в / tmp /

 -rw------- 1 vagrant vagrant 88 Mar 24 08:53 testuploadA4K2MA 

И я проверил, что оба чтения и записи включены. Что это такое. Я совершенно смущен, почему phpunit терпит неудачу? Кто-нибудь видел что-то подобное раньше? Может быть, пожалуйста! 🙂

Related of "Laravel 5.2 Пробный тест загрузки загруженного файла"

Вы должны использовать Illuminate\Http\UploadedFile вместо Symfony\Component\HttpFoundation\File\UploadedFile после 5.2.15

Обсуждение здесь: https://github.com/laravel/framework/issues/12350