راکت

مشکل آپلود فایل با ajax

4 پاسخ

سلام دوستان..

برای ارسال فایل از طریق Ajax کد زیر رو دارم:

 var obj = new FileReader();
                obj.onload = function(data){
                    var formData = new FormData();

                    event.preventDefault();

                    $.ajaxSetup({
                        headers: {
                          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        }
                      });
                    $.ajax({
                        url:"{{ route('FileUploadAjax')}}",
                        method:"POST",

                        data: formData,
                        dataType: 'JSON',
                        contentType: false,
                        cache: false,
                        processData: false,

                        success:function(data){
                          alert('success');
                        }

                    })
                }

به اینصورته که به محض اینکه فایل رو توسط file input انتخاب کردم قراره ajax عمل میکنه و روی هیچ دکمه submit یا چیز دیگه ای کلیک نمیکنم

داخل کنترلر فایل رو ندارم..
انگار نمیفرسته..
کدای مربوط به فایل رو که از توی کنترلر پاک میکنم همه چی اوکیه و ajax درست کار میکنه ولی به محض اینکه کدای مربوط به فایل رو میذارم ارور میده.. مثل getClientOriginalExtension

حتی تست کردم بقیه چیزای داخل فرم رو هم null برمیگردونه..
مثلا فیلد name که مقدار هم داره. انگار فرم رو نمیفرسته به کنترلرم

ممنون میشم راهنماییم کنید کد رو اصلاح کنم

ثبت پرسش جدید

پاسخ‌ها

4
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

سلام من از این استفاده میکنم بدون هیچ مشکلی کار میکنه

$.ajax({
                method:"get",
                url:"{{route('admin.setting.faq.status')}}",
                data:{id:id},
                success:function(data){
                    //console.log('success');
                }
            })

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

coarad supp
coarad supp
@coaradsupp

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

شاید پاسخ شما همین‌جا باشد

JBolouri
JBolouri
@javadbolouri72

اسم و آی دی file input هست myFile..

چجوری به ajax بگم که دیتای این فایل اینپوت رو به همراه درخواست بفرست به کنترلر؟

JBolouri
JBolouri
@javadbolouri72

درست شد..

این کدا رو بعنوان دیتای Ajax اضافه کردم درست شد..

var UploadFormData = new FormData();
var files = $('#myFile')[0].files[0];
UploadFormData .append('myFile',files);

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

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