developer
5 سال پیش توسط developer مطرح شد
5 پاسخ

فروش امن فایل

سلام
سایت های مختلف مثل همین راکت، این فایل های ویدئویی یا پی دی اف یا زیپ رو کجا ذخیره میکنند؟ چجوری میشه جایی ذخیره کرد که بدون اجازه نشه دسترسی پیدا کرد بهشون؟
مثلا بخوام چندتا فایل زیپ بفروشم، و بعد فروش لینک دانلود بذارم، کسی میدونه چجوری میشه؟


ثبت پرسش جدید
الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 5 سال پیش آپدیت شد
2

کافیه اون ها رو در فولدر storage/app قرار بدید. اینجوری هیچ گونه لینک مستقیمی برای دسترسی به این فایل ها قرار نداره. حالا تو پروژه لاراولتون بعد از اعتبارسنجی ها و ... هر وقت خواستید فایل رو به دست کاربر برسونید که بتونه دانلود کنه میتونید یک response از نوع download با آدرس فایل مورد نظر بهش بدید. مثلا اینجوری:

return response()->download('path_to_file');

اطلاعات جزئی تر:
https://laravel.com/docs/5.8/responses#file-downloads


احسان الوندی
تخصص : توسعه دهنده وب
@Alvandi 4 سال پیش مطرح شد
0

با سلام. در اینصورت که شما راهنمایی کردید چجور میشه فایل رو توسط کد تو اونجا upload کرد؟

@mhyeganeh


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
1

@Alvandi
خیلی ساده با استفاده از Storage facade و دستور put:

use Illuminate\Support\Facades\Storage;

Storage::put('file.jpg', $image);

تنظیمات بیشترش رو هم باید در فایل config/filesystem.php کانفیگ کنید.

توضیحات بیشتر:
https://laravel.com/docs/8.x/filesystem#storing-files


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 4 سال پیش مطرح شد
0

سلام دوست عزیز!
در لاراول به صورت عادی فقط فایل های درون پوشه public با استفاده از لینک مستقیم قابل دانلود هستند.
مثل همان فایل های css و ... که در public قرار میدهیم.
پس در هر پوشه دیگری فایل هارو آپلود کنیم ، قابل دسترس نیستند.
لاراول برای آپلود و دانلود File Storage رو به وجود آورده که یک پوشه خارج از public هست.
و برای دانلود فایل های پوشه Storage تنها از متد زیر میتوانیم استفاده کنیم.

return Storage::download('file.zip');

در انتها میتونیم در کنترلر خودمون بعد از بررسی هویت و امکان دانلود توسط کاربر ، متد بالا را اجرا کنیم.

نکته: ما نیاز نداریم لینک دانلود را مستقیم در تگ a بنویسیم، باید در تگ a روتر دانلود را فراخوانی و id فایل مورد نظر را ارسال کنیم تا درخواست دانلود توسط کنترلر بررسی شود.


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

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