aktualisieren 2016.04.26 11.30 GMT + 2 Behelfslösung
Seit Laravel 5.2.15 wird der $ Prüfparameter entfernt, aber es gibt keinen ersichtlichen Grund, weil symfonys UploadedFile noch die $ Prüfparameter hat.
Eine Problemumgehung ist, provisorisch Laravel 5.2.14 zu verwenden.
aktualisieren 2016.04.26 11.00 Uhr GMT + 2
Laravel eigenen UploadedFile nicht die $ Test-Parameter übergeben. Sehen Sie die folgenden Ressourcen:
- https://github.com/laravel/framework/issues/12620
- https://github.com/laravel/framework/commit/5062a9b42632e55ee90b7397141c0b12622447e1
Ich weiß, es ist eine andere Frage: How to test file upload in Laravel 5.2, aber die deutliche Antwort für mich nicht funktioniert.
Test Case
ich eine Instanz von UploadedFile Klasse Symfony und ich setzen $test
zu true
. Ich poste die Datei auf file/upload
.
class FileControllerTest extends TestCase
{
use \Illuminate\Foundation\Testing\DatabaseTransactions;
private $file;
public function setUp()
{
parent::setUp();
$this->file = new Symfony\Component\HttpFoundation\File\UploadedFile(
public_path() . '/examples/example.jpg',
'example.jpg',
'image/jpeg',
filesize(public_path() . '/examples/example.jpg'),
null,
true // for $test
);
}
/** @test */
public function it_uploads_a_valid_file()
{
var_dump($this->file); // $test = true
$this->call('POST', 'file/upload', [], [], ['file' => $this->file],
['accept' => 'application/json']);
$this->assertResponseOk();
}
}
-Controller
namespace App\Http\Controllers;
class FileController extends Controller
{
public function upload(Request $request)
{
var_dump($request->file('file')); // $test = false
return [];
}
}
Problem
- Die Datei zu schreiben hat das Argument
true
für$test
- Der entsandte Datei
in
upload()
kommtenthält die richtigen Argumente, aber$ test ist falsch
Es scheint das Argument $ Test nicht in der Vergangenheit durch die Post Anruf. Ist das ein Fehler?
Ja, Sie haben Recht. Vielen Dank! – schellingerht
@schellingerht Kein Problem, ich hatte das gleiche Problem heute und versuchte herauszufinden, was los ist –
Laravel ist ein toller Rahmen, an dem ich gearbeitet habe, aber diese brechenden Veränderungen machen mich wütend! Ich verbrachte viele Stunden, um es herauszufinden, in v5.2.0 funktionierte perfekt nach dem Upgrade auf 5.2.29 dieser Fehler ist auch bei mir passiert, gelöst mit '\ Illuminate \ Http \ UploadedFile' Danke für Ihre Antwort. –