PDA

View Full Version : آپلود فایلهای حجیم



mehdi58
جمعه 14 مهر 1385, 12:11 عصر
سلام
من در یکی از پروژه هام قسمتی واسه آپلود دارم ( البته این پروژه روی اینترنت Publish نمی شه بلکه واسه اینترانته). من باید به کاربرام این اجازه رو بدم که بتونن حتی اگه فایلهاشون تا 500 مگا بایت یا حتی 1 گیگا بایت بود هم عمل آپلود رو انجام بدم . ( اصلا محدودیتی واسه فضای ذخیره سازی فایلها وجود نداره و تعداد کاربران سیستم هم بیشتر از 30 نفر نیستن و عمل آپلود هم قرار نیست همیشه و بطور پیوسته انجام بشه )
واسه این کار من توی web.config کد زیر رو نوشتم :

<httpRuntime maxRequestLenght=”1000000000” …>
حالا وقتی اون رو تست می کنم مثلا می خوام یه فایل 600 مگابایتی رو آپلود کنم ، مرورگرم یه چند لحظه مکث می کنه و بعد صفحه رو Refresh می کنه و پیغام The page can not be displayed! ظاهر میشه .
حالا سوال من اینه که ایا اصلا میشه فایلهای حجیم رو با این روش ذخیره کرد ؟
آیا باید از آیتمهای دیگه ای مثل executionTimeout و ... توی httpRuntime استفاده کرد ؟
اگه کسی توی این زمینه کار کرده لطف کنه و پاسخ بده .
متشکرم

pegasos
شنبه 15 مهر 1385, 10:53 صبح
با درود.
[هر که را طاوس خواهد جور هندوستان کشد.]
http://www.codeproject.com/useritems/AJAXUpload.asp

به امید موفقیت.

mehdi58
شنبه 15 مهر 1385, 17:08 عصر
من خیلی با تکنولوژی AJAX آشنا نیستم . آیا میشه توی Vs 2003 هم از اون استفاده کرد ؟
واینکه آیا هیچ راهی نداره که از AJAX استفاده نکنم ؟


با درود.
[هر که را طاوس خواهد جور هندوستان کشد.]

راستی منظورتون از تک مصرع فوق چیه ؟؟؟؟؟؟؟؟؟؟ :متفکر: :متفکر: :متفکر:

pegasos
یک شنبه 16 مهر 1385, 10:31 صبح
با درود.

ابتدا راجع مصراع : فقط منظورم این بود که اگر بخواهی کار بزرگی بکنی باید سختی اش را تحمل بکنی ،به هیچ وجه منظور دیگری ندارم.

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

در مورد این مشکل خاص شما.
Ajax کاری که برای ما می کنه اینه که غیر همزمان بین کلاینت و سرور ارتباط برقرار می کنه .
و دقیقا مشکل ما همینجاست [برای آپلود کردن فایلهای بزرگ]
و در این مثال با استفاده از این تکنولوژی فایل های به صورت تکه تکه فرستاده می شود.

ولی مشکلی که هست سمت سرور باید یک Web Service کوچیک بنویسی که یک مقدار پیچیدگی داره.

به نظر من اگر اساسی می خواهی این کار را بکنی و می خواهی کارت خیلی مطمئن باشه یک ویندوز اپلیکیشن کوچک بنویس که با اون فولد سرور سروکار داشته باشه و با یک UI ساده که با پروتکل FTP فایل رو برات منتقل کنه .
اینطوری هم خدا را خوش می یاد و هم بندگان خدا را [البته شاید شما زیاد خوشت نیاد.]

در هر صورت هر کاری کردی به ما خبرشو بده .
من هر چوری بتونم کمکت می کنم.

blueface
یک شنبه 16 مهر 1385, 12:58 عصر
به نظر من اگر اساسی می خواهی این کار را بکنی و می خواهی کارت خیلی مطمئن باشه یک ویندوز اپلیکیشن کوچک بنویس که با اون فولد سرور سروکار داشته باشه و با یک UI ساده که با پروتکل FTP فایل رو برات منتقل کنه .
.

ببخشید میشه یکم بیشتر توضیح بدید یعنی واضح تر بگید که چطوری کار فوق رو انجام بدیم؟
با تشکر.

pegasos
یک شنبه 16 مهر 1385, 15:31 عصر
با درود .
ببینید شما ابتدا باید یک وب سرویس بنویسید.
خیلی خلاصه وب سرویس آپلیکیشنی هست که به آپلیکیشنی های دیگه سرویس می ده و نه به یک کلاینت.
فرض کنید یک برنامه ASP.NET بدون UI .
شما می توانید بویسیله دات نت یک winApp بنویسید که آدرس وب سرویس خودتان را به عنوان یک Web Reference به آن اضافه می کنید.
اینجا هم فرض کنید که دارید به یک Local Dll رفرنس می زنید.
و از کلاسها و متد های آن وب سرویس استفاده می کنید.
البته کار به همین سادگی که من توضیح دادم نیست.و یکسری مسائل و محدودیت ها را باید رعایت کرد.
اگر وقت کردم تا آخر این هفته عین همین برنامه را می نویسم و همین جا می زارم.

به امید موفقیت.

mehdi58
دوشنبه 17 مهر 1385, 22:15 عصر
سلام
درباره اون تک مصرع فقط می خواستم ببینم واسه چی بود . فرمایش شما دقیقا متین .


اگر وقت کردم تا آخر این هفته عین همین برنامه را می نویسم و همین جا می زارم.

اگه این کار رو بکنی که خیلی لطف کردی چون عجیب کارام تو این پروژه به هم گره خورده .

mehdi58
یک شنبه 23 مهر 1385, 10:03 صبح
دوست عزیز Pegasos سلام
چی شد ؟
اگه خیلی درگیری یه لینک راهنما بگذار !
ممنون

pegasos
دوشنبه 24 مهر 1385, 08:18 صبح
با درود.
من خیلی خیلی از شما عذر خواهی می کنم که نتوانستم کار شما را انجام دهم.
هفته پیش یک پروژه بزرگ را باید تحویل می دادیم و هنوز هم در گیر راه انداختن آن در سازمان مورد نظر هستیم.
ولی من روی این موضوع یک مقدار کار کردم.
ببینید از آن لینک قبلی که من گذاشتم به خوبی می توانید نتیجه بگیرید،مشکل بزرگی که دارد باید ActiveX را در بروزر کلاینت روشن کنید که واقعا وحشت ناک است.

ولی کار خوبی که انجام می دهد این است که فایل را تکه تکه می کند و به سمت سرور می فرستد و این دقیقا همان کاری بود که من نتوانستم برای یک ویندوزکلاینت درست کنم [فقط به خاطر کمبود وقت].

در هر حال من یک پروژه نمونه که برای دانلود فایل از WebService است می گذارم تا با اساس کار آشنا شوید.
شما می توانید با ادغام این در پروژه با هم به منظور خودتان برسید.
من هم اگر وقت کردم روی این مسئله کار می کنم.ولی قول نمی دهم.

شما این کار را جلو ببرید اگر به مشکلی بر خوردید به من اطلاع دهید.

به امید موفقیت.