Mahmoud Alrashidi نشر 2 مارس 2021 أرسل تقرير مشاركة نشر 2 مارس 2021 أحاول إختبار خاصية رفع فيديو عن طريق Laravel Livewire بالرغم من أن خاصية الرفع تعمل إلا أن الإختبار يفشل و لا أدر أين المُشكلة، هذا إختبار الخاصية: public function can_upload_video() { $sizeInKilobytes = 100000; $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); Storage::fake('videos_disk'); $this->actingAs(User::factory()->create()); Livewire::test(Create::class) ->set('title', 'foo') ->set('video', $file) ->call('upload'); dd(Storage::disk('videos_disk')->allFiles()); } و هذا مُكون livewire: class Create extends Component { use WithFileUploads; use DispatchesJobs; public $video; public $title, public function upload() { $this->validate([ 'title' => 'required', 'video' => 'max:1000000|required|file|mimetypes:video/mp4,video/mpeg,video/x-matroska', ]); $video = Video::create([ 'disk' => 'videos_disk', 'original_name' => $this->video->getClientOriginalName(), 'path' => $this->video->store('/', 'videos_disk'), 'streaming_path'=> null, 'title' => $this->title, ]); $this->dispatch(new ConvertVideoForStreaming($video)); } } الخاصية تعمل لكن عند تنفيذ الإختبار يُعطي مصفوفة فارغة. المُتوقع أن يعطيني مصفوفة بها الملف المرفوع. 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 سمير عبود نشر 2 مارس 2021 أرسل تقرير مشاركة نشر 2 مارس 2021 هذا غالباً يحدث بسبب فشل ال validation حيث أنك تتحقق من mime type لكن في الإختبار الملف الوهمي لا يحتوي على نفس mime type هنا: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); لذلك حاول تغيير هذه الأسطر: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); إلى mime type صحيح بهذا الشكل: <?php $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'video/mp4' ); 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 بلال زيادة نشر 2 مارس 2021 أرسل تقرير مشاركة نشر 2 مارس 2021 يمكنك تغيير الكود التالي $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); إلى $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'video/mp4' ); بحيث تم تغيير mime إلى mime صحيح. إيضا حاول استخدام ملف وسائط حقيقي بدلاً من ملف وسائط مزيف. $path = <path to your file>; $file = new UploadedFile($path, $name, filesize($path), 'video/mp4', null, true); اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mahmoud Alrashidi
أحاول إختبار خاصية رفع فيديو عن طريق Laravel Livewire بالرغم من أن خاصية الرفع تعمل إلا أن الإختبار يفشل و لا أدر أين المُشكلة،
هذا إختبار الخاصية:
و هذا مُكون livewire:
الخاصية تعمل لكن عند تنفيذ الإختبار يُعطي مصفوفة فارغة. المُتوقع أن يعطيني مصفوفة بها الملف المرفوع.
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.