2015-06-09 4 views
5

मैं लैरवेल 5 से 5.1 तक एक परियोजना को अपग्रेड करने की प्रक्रिया में हूं। अद्यतन करने के लिए आवश्यक एक पैकेज League\Flysystem था।लीग/फ्लाईसिस्टम fstat() पैरामीटर 1 संसाधन होने की अपेक्षा करता है, ऑब्जेक्ट

मैं छवि का आकार बदलने के लिए Intervention\Image का उपयोग कर रहा हूं और फिर फ्लाईसिस्टम को इसे S3 में सहेजने के लिए उपयोग कर रहा हूं। नीचे दिए गए कोड 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); 

लेकिन अब मैं निम्नलिखित त्रुटि मिल रही है: fstat() expects parameter 1 to be resource, object given, league\flysystem\src\Util.php में फेंक दिया, लाइन 250

मैं "intervention/image": "~2.1" उपयोग कर रहा हूँ, "league/flysystem-aws-s3-v3" : "~1.0",

कोई भी विचार इसका क्या कारण हो सकता है?

उत्तर

7

आप अपने $ छवि वस्तु पर कि कुछ प्रकार की ढलाई से पहले भाग्यशाली हो सकता है बनाया इसे से बाहर एक स्ट्रिंग, मैं

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

करने के लिए अपने अंतिम पंक्ति का एक सरल chnage लगता है समस्या का समाधान हो और सुरक्षित है वैसे भी जैसे "डाल" विधि आधिकारिक रूप से केवल तारों को स्वीकार करती है (और प्रत्यारोपण को भी PHP संसाधनों को देखती है)। जो आपको लंबे समय तक परिवर्तनों के लिए संगत बनाए रखना चाहिए।

+0

अब कमान प्राप्त (_toString) ड्राइवर (गोलों का अंतर)' के लिए उपलब्ध नहीं है। – NightMICU

+0

क्या एक लेखन त्रुटि (_toString) है या आपके पास केवल एक अंडरस्कोर है? यह दो अंडरस्कोर के साथ __toString() होना चाहिए। – ChristianM

+0

आप बहुत बढ़िया हैं, धन्यवाद! क्या आप समझा सकते हैं कि यहां क्या हुआ? – NightMICU

10

यह करने के लिए बेहतर तरीका इनकोडिंग उत्पादन डाली टाइप करने के लिए है: `

http://image.intervention.io/api/encode

$image->encode('jpg'); 
$disk->put("img/album/$id/$filename", (string) $image); 
+0

मैं वास्तव में सहमत हूं, सुझाए गए टाइपकास्ट को :) – ChristianM

संबंधित मुद्दे

 संबंधित मुद्दे