2015-06-09 14 views
5

Jestem w trakcie aktualizacji projektu z Laravel 5 do 5.1. Jeden pakiet, który musiał zostać zaktualizowany, to League\Flysystem.Liga/Flysystem fstat() oczekuje, że parametr 1 będzie zasób, obiekt dany

Używam Intervention\Image do zmiany rozmiaru obrazu, a następnie Flysystem, aby zapisać go na S3. Poniższy kod działa z 5,0 -

// Album ID 
$id = $request->input('id'); 
// Filename for this photo 
$filename = str_random() . ".jpg"; 

// Get the storage disk 
$disk = Storage::disk('s3'); 

// Resize the photo 
$image = Image::make($request->file('photo')); 
$image->orientate(); 
$image->resize(1024, 748, function ($constraint) { 
      $constraint->aspectRatio(); 
}); 
$image->encode('jpg'); 
// Save the photo to the disk 
$disk->put("img/album/$id/$filename", $image); 

Ale teraz otrzymuję następujący błąd: fstat() expects parameter 1 to be resource, object given, wrzucony league\flysystem\src\Util.php, linia 250.

Używam "intervention/image": "~2.1", "league/flysystem-aws-s3-v3" : "~1.0",

Wszelkie pomysły co może być przyczyną tego?

Odpowiedz

7

Mogłeś szczęście przed tym jakiś rodzaj odlewu na obiekcie $ ada ciąg z niego, chyba proste chnage ostatniego wiersza do

$disk->put("img/album/$id/$filename", $image->__toString()); 

będzie rozwiązać ten problem i jest bezpieczniejszy tak czy inaczej, metoda "put" oficjalnie akceptuje tylko łańcuchy znaków (i patrząc na implmentację także zasoby php). Powinno to zapewnić zgodność z długofalowymi zmianami.

+0

teraz odbierać polecenia '(_toString) nie jest dostępna dla kierowcy (Gd)'. – NightMICU

+0

to błąd zapisu (_toString) lub czy masz tylko jedno podkreślenie? Powinno to być __toString() z dwoma podkreśleniami. – ChristianM

+0

Jesteś niesamowity, dzięki! Czy możesz wyjaśnić, co tu się stało? – NightMICU

Powiązane problemy