یه راه حل برای آپلود پیشنهاد بدین!

m1pfard

Member
اجازه بدین سوالم رو با یه مثال مطرح کنم:
فرض کنین یه فرم داریم که اطلاعات رو از کاربر میگیره، البته با استفاده از Wizard. حالا تو یکی از گامهای ویزارد مثلا گام دوم (از چهار گام) یک فیلد برای آپلود گذاشتیم. همونطور که اساتید عزیز می دونین UploadFile در هر PostBack مقدار خودش رو از دست میده!! یعنی اگه مثلا از گام 2 به 3 بریم مقدار این کنترل خالی می شه! و تا اونجا که من متوجه شدم باید تو هر PostBack این مقدار رو چک و در نهایت آپلود کرد.
یعنی قبل از ذخیره اطلاعات فایل آپلود می شه. حالا مشکل اینه که این فایل رو کجا آپلود کنیم؟:cry:
چون ممکن قبل از ذخیره اطلاعات تو گام نهایی کاربر از ورود اطلاعات منصرف بشه یا ارتباطش قطع بشه و یا .... و اونموقع ما می مونیم با یه فایل آپلود شده بی مصرف رو سرور!
حالا اگه دوستان پیشنهادی برای این مشکل دارن لطف کنن ممنون میشم:rose:
 

abc#def

Member
شما مسیر فایل رو باید نگه داری و دست آخر آپلودش کنی رو سرور. یا اینکه همون موقع آپلودش کنی بعدن یک برنامه بزاری که ببینه اگه فایلی هست که تو دیتا بیس اطلاعاتی ازش نیست پاکش کنی این دو رویش بستگی به این داره که شما فرم هاتون رو چجوری هندل کنی اگه همرو یکجا میدی دیتابیس فایل رو هم آخر آپلود کن اما اگه تو هر بخش ویزارد اطلاعاتت میره تو دیتابیس بهتره که فایل رو همون سر جاش آپلود کنی
 

m1pfard

Member
ممنون ولی میشه لطفا بگید چطوری میشه اطلاعات کنترل fileupload رو ذخیره کرد؟ (تو viestate یا session)
 

abc#def

Member
PHP:
$_SESSION['fileName'] = $_FILES['userfile']['name'];	
$_SESSION['tmpName'] = $_FILES['userfile']['tmp_name'];
$_SESSION['fileSize'] = $_FILES['userfile']['size'];	
$_SESSION['fileType'] = $_FILES['userfile']['type'];
$_SESSION['content'] = file_get_contents($_FILES['userfile']['tmp_name']);
 

amin100amin

Member
شما با پلتفرم دات نت کار میکنید ؟
چه ورژنی؟ چه زبونی ؟
به نظر من فرمت رو هم اینقدر قسمت بندی نکن.
اگه بیشتر توضیح میدادی میشد راهنمایی کرد
 

abc#def

Member
آخ ببخشید من اصلا حواسم به asp.net بودن پست نبود با php مثال زدم با asp.net هم همینکارو میشه کرد، اگر کد لازمه بزارم اگر هم که مشخصه که هیچ
 

m1pfard

Member
ممنون از لطفتون.
راستش دیروز من هرچی به این فروم سر زدم DataBase Error میداد!!!!
من از ASP.net 2.0 استفاده میکنم ولی فکر کنم با همین بتونم یه کاریش بکنم!
از لطفتون ممنون
 

shirani

مدیر انجمن <A href="http://forum.majidonline.com/f
این تست کن .net 2
 

پیوست ها

  • test.rar
    3.3 کیلوبایت · بازدیدها: 3

MDP

Well-Known Member
مهدی جان شما می تونید همه چیز رو توی Session بریزی!حتی یه دیتاست رو!

ولی من پیشهاد می کنم که یه فلدر Temp بساز و اطلاعات رو اون تو آپلود کن و وقتی کاربر تائید کرد و تائید نهایی شد منتقلش کن به فلدر اصلی!

این روش بهتره!چون اگه هر کاربر یه فایل 1 مگی آپیود کنه و 20 تا یوزر داشته باشی احتمال خوابیدن سایت هست!
 

m1pfard

Member
مسعود خان ممنون از لطفت! مگه با این روش خود فایل به session منتقل میشه؟!!!!!
من فکر کردم فقط اسم فایل رو ذخیره میکنه و بعد اونو آپ میکنه!!!
راستش من اول همین روشی رو که شما فرمودین انجام دادم ولی مشکل اینه که ممکنه موقع پر کردن اطلاعات فرمها (پس از آپ کردن فایل) ارتباط قطع بشه! اونوقته که من می مونم و یه فایل بلا مصرف رو سرور!!!
البته برای اون مشکل هم فکر کردم از SessionID استفاده کنم.
یعنی هر موقع کاربر Login کرد یه پوشه به نام SessionID اون ایجاد کنم و فایلها رو تو اون بریزم و پس از Logout یا Session TimeOut پوشه رو حذف کنم. در اون موقع مشکلی که پیش میاد اینه که ممکنه کاربر موقع Login تیک RememberMe رو بزنه در اون صورت در هربار بازکردن مرورگر، SessionID تغییر میکنه!!! ولی برای Login مشکلی نداره
 

جدیدترین ارسال ها

بالا