Paradox
1 سال پیش توسط Paradox مطرح شد
4 پاسخ

مشکل در نمایش ویدئو و تصویر

سلام تو یه بخش از سایتم میخام اگه ویدئو گذاشتم ویدئو نمایش بده و اگه عکس گذاشتم عکس نمایش بده
دو تا فیلد تعریف کردم
image
video
دیفالت رو nullabel گذاشتم حالا هر کدوم خواستم اپلود میکنم

فقط نمیدونم تو بلید به چه شکل شرط بزارم

  @if (اینجا نمیدونم چی بزارم)
                 <img src="{{ $news->image }}" alt="" class="img-fluid">
            @else
                <video width="500" controls preload>
                    <source src="{{ $news->video }}" type="video/mp4">
                </video>
            @endif

تو کنترلر به این شکل نوشتم ایراد داره ؟دیتا ثبت شد و اکیه فقط میخام بدونم مشکلی نداشته باشه

        auth()->user()->news()->create($request->all());

یا به این شکل بنویسم ؟چون ویدئو هم هست نمیدونم به این روش چطوری بنویسم

 if($request->hasFile('image')) {

                $file = $request->file('image');
                $ext = $file->getClientOriginalExtension();
                $file_name = auth()->user()->id . '_' . time() . '.' . $ext;
                $file->storeAs('/', $file_name, 'files');

                $data['image'] = $file_name;
             }

            auth()->user()->update($data);

ثبت پرسش جدید
Banana Life
@shift.delete 1 سال پیش مطرح شد
0

@codeLover
نمیدونم جدول دیتا شما برای ذخیره فایل تان به چه شکلی است ولی برای فرض مثال میشه همچین چیزی


Banana Life
@shift.delete 1 سال پیش مطرح شد
0

سلام
دوست عزیز مشکل شما را میشه به روش های مختلف حل کرد؛ شما میتونید یه فیلد دیگه بر اساس اسم فایل عکس یا فیلم درست کنید و به راحتی بر اساس نوع فایل یکی از ان ها را نمایش بدید.
دستور شرطی برای نمایش اگر مقدار nullabel باشه:

@if (fileName == null)
        @if (fileName == img)
            <img src="{{ $news->image }}" alt="" class="img-fluid">
        @else
            <video width="500" controls preload>
                 <source src="{{ $news->video }}" type="video/mp4">
            </video>
    @else
       <div></div>
    @endif

دستور شرطی برای نمایش اگر مقدار nullabel نباشه:

@if(fileName == img)
        <img src="{{ $news->image }}" alt="" class="img-fluid">
    @else
        <video width="500" controls preload>
            <source src="{{ $news->video }}" type="video/mp4">
        </video>
    @endif

Paradox
تخصص : در حال یادگیری
@paradox 1 سال پیش مطرح شد
0

@shift.delete
ممنونم از شما 🌹
فیلد دیگه از نوع boolean باشه ؟
یا از طریق mime type منظورتونه ؟
بیشتر توضیح میدید؟


Banana Life
@shift.delete 1 سال پیش مطرح شد
0

@codeLover
نمیدونم جدول دیتا شما برای ذخیره فایل تان به چه شکلی است ولی برای فرض مثال میشه همچین چیزی


Paradox
تخصص : در حال یادگیری
@paradox 1 سال پیش آپدیت شد
0

@shift.delete
ممنونم
پس نیاز به دو فیلد یکی برای اسم فایل یکی پسوند فایل هست درسته ؟

من به این شکل نوشتم درسته ؟

        $table->id();
            $table->foreignId('user_id')->constrained()->cascadeOnDelete();
            $table->string('name');
            $table->string('slug')->unique();
            $table->tinyInteger('status');
            $table->text('description');
            $table->string('filePath');
            $table->string('fileName');
            $table->timestamps();

کنترلر

       $request->validate([
            'name' => 'required',
            'slug' => 'unique:counselings',
            'status' => '',
            'description' => 'required',
            'filePath' => 'required',
            'fileName' => ['mimetypes:video/mp4,image/jpeg,image/png,image/gif,audio/mp3,audio/mpeg']
        ]);

        if (empty($request->slug)) {
            $slug = SlugService::createSlug(Counseling::class, 'slug', $request->name);
        } else {
            $slug = SlugService::createSlug(Counseling::class, 'slug', $request->slug);
        }
        $request->merge(['slug' => $slug]);

        if($request->hasFile('filePath')) {
            $files = $request->file('filePath');
            $ext = $files->getClientMimeType();
            $file_name = auth()->user()->id . '_' . time() . '.' . $ext;
            $files->storeAs('/', $file_name, 'files');

            $data['filePath'] = $file_name;
         }

        auth()->user()->news()->create($request->all());

اینجا filename به چه صورت ذخیره کنم تو دیتابیس ؟ این روش اشتباه درسته ؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام