بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل ارسال فایل حجیم با ajax

مدیریت گفتگو
مهدی 8 سال پیش
آخرین تغییر: 8 سال پیش

با سلام

من با ایجکس تو قسمتی از سایت مجبورا چند فایل با هم ارسال کنم که خوب وقتی تعداد فایل ها زیاد میشه ایجکس فایل ها رو ارسال نمی کنه و اون قسمت از سایت از کار می افته!

توی تنظیمات ایجکس من مقادیر زیر رو تنظیم کردم اما با این حال این مشکل وجود داره!:(

cache: false,
contentType: false,
processData: false,
data:form_data,

ممنون میشم دوستان اگر تجربه ای تو این زمینه دارند راهنمایی کنند :)

نظرات

مهدی 8 سال پیش
دوستان کمک نیاز دارم :)
محمد رضا 8 سال پیش
اگه میتونید نمونه کد بزارید. خطاهای احتمالی و لاگ ها رو بفرستید که بهتر به جواب برسید
مهدی 8 سال پیش
ممنونم محمدرضا. خطایی دریافت نمی کنم و لاگی ثبت نمیشه. اما خوب چون حجم فایل ها زیاد میشه اصلا دیتایی ارسال نمیشه :(( من نمونه کد رو در ارسال بعدی درج کردم

پاسخ‌ها 2

مهدی 8 سال پیش

 

 

<script>
var a_file = $("#a-file").prop("files")[0];
var b_file = $("#b-file").prop("files")[0];
var c_file = $("#c-file").prop("files")[0];
var d_file = $("#d-file").prop("files")[0];
var e_file = $("#e-file").prop("files")[0];
var f_file = $("#f-file").prop("files")[0];
var g_file = $("#g-file").prop("files")[0];
var h_file = $("#h-file").prop("files")[0];
var i_file = $("#i-file").prop("files")[0];
var j_file = $("#j-file").prop("files")[0];
var k_file = $("#k-file").prop("files")[0];
var l_file = $("#l-file").prop("files")[0];
var m_file = $("#m-file").prop("files")[0];
var n_file = $("#n-file").prop("files")[0];
var o_file = $("#o-file").prop("files")[0];

var form_data = new FormData();

form_data.append("a_file", a_file);
form_data.append("b_file", b_file);
form_data.append("c_file", c_file);
form_data.append("d_file", d_file);
form_data.append("e_file", e_file);
form_data.append("f_file", f_file);
form_data.append("g_file", g_file);
form_data.append("h_file", h_file);
form_data.append("i_file", i_file);
form_data.append("j_file", j_file);
form_data.append("k_file", k_file);
form_data.append("l_file", l_file);
form_data.append("m_file", m_file);
form_data.append("n_file", n_file);
form_data.append("o_file", o_file);

insertNewRecord(form_data);
</script>

محتویات تابع  insertNewRecord:

 

function insertNewRecord(form_data){
$.ajax('../new_record',{
type: 'POST',
dataType: 'json',
cache: false,
contentType: false,
processData: false,
data:form_data,
success: function (result) {
alert("A");
}
});
}

 

نظرات

مهدی 8 سال پیش
لازم به توضیح هست که با این روش می تونم براحتی تعداد 5 فایل با حجم نسبتا پایین رو ارسال کنم، اما با افزایش تعداد فایل ها و به طبع افزایش حجم دیتا هیچ چیزی ارسال نمیشه :(
محمد رضا 8 سال پیش

چند تا احتمال به نظرم میرسه
۱- آنتی ویروسی نصب داشته باشی که پکیج های ارسالی از طریق صفحات وب و پروتکل http محدود کرده باشه به مثلاً حداکثر ۵۰ کیلوبایت
2- شاید با تنظیم مقادیر زیر تو php.ini مشکل حل بشه

 
  • upload_max_filesize
  • memory_limit
  • post_max_size

اگه این ها حل نشد سعی کن قطعه کدی که استاد برای نمایش خطا اضافه کرد رو به اسرکیپت اضافه کنی

       error: function (jqXHR, exception) {
        if (jqXHR.status === 0) {
          alert('Not connect.\n Verify Network.');
        } else if (jqXHR.status == 404) {
          alert('Requested page not found. [404]');
        } else if (jqXHR.status == 500) {
          alert('Internal Server Error [500].');
        } else if (exception === 'parsererror') {
          alert('Requested JSON parse failed.');
        } else if (exception === 'timeout') {
          alert('Time out error.');
        } else if (exception === 'abort') {
          alert('Ajax request aborted.');
        } else {
          alert('Uncaught Error.\n' + jqXHR.responseText);
        }
      }

نظرات

مهدی 8 سال پیش
ممنونم. از پاسخت. این موارد رو حتما تست می کنم و نتیجه رو اعلام خواهم کرد

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .