ذخیره سازی فایل در لاراول

دسته بندی: آموزش
زمان مطالعه: 1 دقیقه
۰۴ مرداد ۱۳۹۶

به نام خدا و سلام. ذخیره سازی فایل های و هندل کردن اونها همیشه یکی از مهمترین بخش های در برنامه های وب بوده. در این جلسه قصد داریم ببنیم لاراول برای این مورد چه امکاناتی در اختیار ما قرار میده.

:: توجه

این مطلب یک جلسه از آموزش لاراول مبتدی تا پیشرفته می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش لاراول مبتدی تا پیشرفته

نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

سید امیر خلیفه سلطانی

سلام و وقت بخیر
من از تابع move() استفاده میکنم برای ذخیره فایلم
اما ارور میده
Unable to create the “C:\xampp\htdocs\larafiles\public\files” directory
مشکل از chmod هست؟
چطور میتونم تغییرش بدم؟
روی چه عددی بذارم اصولی هستش؟
باتشکر

سید امیر خلیفه سلطانی

حل شد.
یه فایل دیگه با همین نام تو همون دایرکتوری بود. برای همین اجازه نمیداد.

Reza Jashnsaz

سلام خسته نباشید
شما چندین روش گفتید تو این جلسه واسه آپلود فایل
میخواستم ببینم مشکلی نداره ما همیشه از همون روش اول یعنی متد store استفاده کنیم ؟ واسه اینکه حجم کدنویسی کمتر بشه..

کیوان علی محمدی

سلام مشکلی نداره.

صابر حسن علی پور

سلام من برای ادیت کردن فایل ها به صورت زیر عمل کردم یه مشکلی هست وقتی فایل انتخاب نکردم صفحه ارور میده که mimetype null هست چکار باید کنم که همون اطلاعات قبلی باقی بمونه ؟

public function update($file_id)
    {
        $this->validate(request(), [
            ‘file_title’ => ‘required’,

        ], [
            ‘file_title.required’ => ‘وارد کردن عنوان الزامی است’,

        ]);
        $inputs = [
            ‘file_title’ => request()->input(‘file_title’),
            ‘file_description’ => request()->input(‘file_description’),
            ‘file_type’ => request()->file(‘fileItem’)->getMimeType(),
            ‘file_size’ => request()->file(‘fileItem’)->getSize(),
            ‘file_name’ => str_random(40) . ‘.’ . request()->file(‘fileItem’)->getClientOriginalExtension()

        ];
        $file_new_data = File::find($file_id);
        if (request()->hasFile(‘fileItem’)) {

            $new_file = request()->file(‘fileItem’)->move(public_path(‘upload’), $inputs[‘file_name’]);
            unlink(public_path(‘upload/’) . $file_new_data->file_name);

        }else{
         unset($inputs[‘file_type’],$inputs[‘file_size’],$inputs[‘file_name’]);

        }
        $file_new_data->update($inputs);
        return redirect()->route(‘admin.files.index’)->with(‘success’, ‘فایل با موفقیت ویرایش شد’);


    }
کیوان علی محمدی

سلام به نظرم در آرایه $inputs اول کلید file_type رو اصلا قرار ندید و بعدش چک کنید اگر فایلی وجود داشت بعدش این کلید ها به $inputs اضافه بشه و در نهایت آپدیت انجام بشه.

Number_41474

سلام
اگه بعد از آپلود کردن، فایل ها رو به یک فولدر در فولدر پابلیک انتقال بدیم با وارد کردن مسیر اون فولدر در مرورگر، کاربر میتونه تمام فایل های آپلود شده ما رو ببینه، برای جلوگیری از این مورد چه کار باید بکنیم؟
با تشکر

کیوان علی محمدی

سلام امکانش نیست اگر directory browsing بسته باشه.

milad boos

لطفا ارسال یک عکس و چندین عکس و فایل هارو بصورت ajax داخل این دوره آموزش بدین آموزش بدین
سپاس فراوان

Rohallah Hatami

سلام،ببخشید تو متد store چرا ورودی request دادین در حالیکه بدونه اینم request رو میشناسه و اجرا میکنه؟
نکته خاصی داره؟

کیوان علی محمدی

سلام . متوجه نشدم اینکه گفتین بدون اینم request رو میشناسه. در متد store این متغییر رو به صورت تزریق وابستگی آوردیم و نکته خاصی هم نداره. صرفا برای بررسی درخواست کاربر در اون لحظه استفاده میشه.

Mostafa Salarvandian

سلام، دوره مجازی لاراول جلسه سیزدهم نداره؟

لقمان آوند

بله هست در صفحه دوره می تونید ببینید

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل