راکت
علی امینی
علی امینی
توسط علی امینی مطرح شد
حل
5 پاسخ

آپلود فایل بصورت آجاکس و ذخیره دائم بعد از سابمیت فرم

سلام دوستان وقت بخیر
من میخوام آپلود فایل هام بصورت آجاکس یعنی بعد این که کاربر فایل رو انتخاب کرد عملیات آپلود انجام بشه در دیتابیس اطلاعاتش ذخیره بشه
فایل ها در دیتابیس متعلق به یک مدل هستند (مثلا فایل آپلود شده متعلق به یک تیکت هستش) میخوام بعد اینکه فرم تیکتم ثابمیت شد فایل به اون اختصاص داده بشه یا اصلا اگر فرم ثابمیت نشد اون فایل پاک بشه
دوشتان راهی برای این کار پیشنهاد دارند؟


ثبت پرسش جدید
Hossein Rafiee
Hossein Rafiee
تخصص :برنامه نویس php
@hossein.rafiee5 سال پیشمطرح شد
0

میتونی فایل هایی را که به صورت اجاکس آپلود میکنی را تو جدول فایل فایل های موقت ذخیره کنی و پوشه هم درست کنی برا فایل های موقت
فایل که به صورت اجاکس آپلود شد توی اون جدول ذخیره کنی و در پاسخ ایجکس ایدی فایل در جدول فایل های موقت را برگردونی و فرم که ثابمیت شد فایل را به مسیر اصلی انتقال بدی و از جدول هم پاکش کنی


hassan hassanzadeh
hassan hassanzadeh
تخصص :برنامه نویس fullstack
@hasan.hasanzadeh.dev5 سال پیشمطرح شد
0

از dropzoon استفاده کن واسه آپلود فایلهات


محمد امیری
محمد امیری
تخصص :backend coder
@mohammadeng37315 سال پیشمطرح شد
1

سلام.
از کلاس FormData در جاوااسکریپت باید استفاده کنید :

<input type="file">

let fileInput=document.querySelector("input[type='file']");
let progressPercent;

fileInput.addEventListener('change',function(){

    let formData=new FormData();

    formData.append('file',this.files[0]);

    axios.post('your route',formaData,{

    onUploadProgress:function(e){

        progressPercent=(e.loaded/e.total)*100

    }

})

}).then(response=>console.log(response.data))  

من آپلود رو رو change گذاشتم شما روی هر event دیگه ای میتونید انجام بدید.فقط input رو داخل یک فرم با enctype=multipart/form-data باید قرار داده باشید.در ضمن axios رو که در کد استفاده کردم صرفا یک کتابخونه است که میتونید اون رو دانلود کرده و استفاده کنید که پیشنهاد میکنم اگه از jquery استفاده میکنید بره آپلود فایل از این کتابخونه استفاده نکنید کا رو براتون سخت میکنه و axios بهترین گزینه است سبکم هست.


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

Dropzone دقیقا همین کار رو انجام میده
منتها به صورت پیش‌فرض وقتی فایل رو سلکت کنی خودش آپلود میکنه
برای تغییر این موضوع باید تنظیماتش رو سِت کنی

توی فروم سرچ کنی.. تاپیک های جالبی هست


HRH
HRH
تخصص :back-end developer , switching to AI
@h.r.hassani5 سال پیشمطرح شد
0

سلام.
می تونی فایل هاتو با روشی که دوستمون در بالا گفتن آپلود کنی و بعد از آپلود اسم فایل که در سرور ذخیره شده رو به صفحه برگردونی و در یک input با تایپ hidden ذخیره کنید و هنگامی که کاربر دکمه ثبت رو می زنه اون اسم ها رو توی دیتابیس ذخیره کنید . بعد هم می تونی یه cronjob بنویسید تا مثلا هر روز فایل هایی که توی سرور هستن ولی توی دیتابیس هستن رو حذف کنه تا اگر کاربر فایل رو آپلود کرد و صفحه رو بست فایل اضافی توی سرور نباشه


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

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