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

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

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


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

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


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

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


محمد امیری
تخصص : backend coder
@mohammadeng3731 4 سال پیش آپدیت شد
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.bayat 4 سال پیش مطرح شد
0

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

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


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

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


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

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