آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

مهدی  8 سال پیش  8 سال پیش
0 0

با سلام

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

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

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

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

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

 

 

<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");
}
});
}

 

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

چند تا احتمال به نظرم میرسه
۱- آنتی ویروسی نصب داشته باشی که پکیج های ارسالی از طریق صفحات وب و پروتکل 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);
        }
      }
0 0
ممنونم. از پاسخت. این موارد رو حتما تست می کنم و نتیجه رو اعلام خواهم کرد (8 سال پیش)

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