PDA

View Full Version : سوال: عدم آپلود فایل های حجم بالا روی دیتابیس sql !!!



bahar_engineer
یک شنبه 03 بهمن 1389, 12:34 عصر
سلام
من یه دیتا بیس sql دارم . توی آپلود فایل های حجم پایین توش مشکلی ندارم اما فایل های حجم بالا مثلاً 20 مگابایت رو که می خوام آپلودد کنم خطا می ده :
connection reset

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

چکار باید بکنم؟ مشکل چیه؟

ممنون می شم جواب بدین

alonemm
یک شنبه 03 بهمن 1389, 14:33 عصر
سلام دوست من:
این خطا میتونه از قسمت کد نوسی شما در ارسال فایل به سرور باشه نه از پایگاه داده شما.
(البته با این سناریو که گفتید)
میتونید کدتونو بزارید تا باهم برسی کنیم.

موفق باشید.

bahar_engineer
یک شنبه 03 بهمن 1389, 14:46 عصر
folder_file = "uploads/files";
// send to file
s1 = Server.MapPath(folder_file);
s2 = System.IO.Path.GetFileName(myfile.FileName);
s3 = System.IO.Path.GetExtension(myfile.FileName);

// size of file
firstsize = myfile.ContentLength;
if (firstsize < 1024)
{
byt = firstsize;
Label2.Text = byt.ToString() + " (BYTE)";
}
else
{
kilo = firstsize / 1024;
if (kilo < 1024)
Label2.Text = kilo.ToString() + " (KB)";
else
{
mega = kilo / 1024;
if (mega < 1024)
Label2.Text = mega.ToString() + " (MB)";
else
{
giga = mega / 1024;
if (giga < 1024)
Label2.Text = giga.ToString() + " (GB)";
}
}
}
t1 = folder_file + "/" + s2;
s = s1 + "//" + s2;
myfile.SaveAs(s);

string k;
k = "insert into uploads(title,senddate,file_path,comment,size)valu es('" + TextBox1.Text + "','" + DateTime.Now.ToString() + "','" + t1 + "','" + matn.Text + "','" + Label2.Text + "')";
SqlCommand cmd = new SqlCommand(k, con1);

con1.Open();
cmd.ExecuteNonQuery();
Label1.Text = "Your File Upload!";
TextBox1.Text = "";
matn.Text = "";
con1.Close();

alonemm
یک شنبه 03 بهمن 1389, 15:04 عصر
تقریبا میشه گفت کد مشکلی نداره البته اگه درقالب یک کلاس و متدها تعریف بشن بهتره و شرط ها هم از else if استفاده کنید.
اما نکته میتونیه از سمت سرور شما باشه که درای TimeOut و یا پهنای باندی مشخص هست که فایل های حجم بالا رو به این سمت هدایت میکنه.
با پشتیبانی هاستینگ و یا از قسمت کنترل پنل سایتتون درباره پهنای باند سایت تون و میزان send AND reseive مطلع شوید.

موفق باشید.

Javad_Darvish_Amiry
یک شنبه 03 بهمن 1389, 16:52 عصر
سلام خسته نباشید دوست من. در کنار نکاتی که alonemm (http://barnamenevis.org/member.php?127814-alonemm) عزیز ذکر کردن این نکته رو هم تست بفرمایید: در فایل وب کانفیگ قسمت httpRuntime صفتی دارید به اسم executionTimeout که تعیین کننده تایمی هست که یه متود خاص اجازه اجرا شدن داره و از اون جایی که فایل های حجیم زمان زیادی برای پردازش نیاز دارن اجرای درخواست بعد از رسیدن تایم اوت متوقف و کانکشنی که بین مرورگر و کاربرد برقرار شده ریست میشه. تنظیم رو باید بر اساس ثانیه بدید. و سعی کنید با توجه به حداکثر حجم فایلی که میخواید آپلود کنید یه برآورد داشته باشید و از اون بیشتر اجازه اکزکیوت ندید (قانون حداقل ها در امنیت). موفق باشید.