راکت
حل شده

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

5 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

5
Hossein Rafiee
Hossein Rafiee
@hossein.rafiee

تخصص: برنامه نویس php

بهترین پاسخ

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

hassan hassanzadeh
hassan hassanzadeh
@hasan.hasanzadeh.dev

تخصص: برنامه نویس fullstack

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

محمد امیری
محمد امیری
@mohammadeng3731

تخصص: backend coder

سلام.
از کلاس 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

تخصص: توسعه دهنده ارشد وب

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

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

HRH
HRH
@h.r.hassani

تخصص: back-end developer , switching to AI

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

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

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