PDA

View Full Version : سوال: ارسال و دریافت فایل از طریق هاست بوسیله برنامه سی شارپی



barman.ar16
یک شنبه 09 اردیبهشت 1397, 08:14 صبح
سلام و درود به دوستان عزیز

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

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

به نظرتون چه روشی بهتر و بهینه تر هست و میتونم از اون استفاده کنم

خواسته ام اینه که : من دو تا برنامه دارم یکی برنامه مشتری ها که فایل ارسال می کنن که عمدتا فایل ها همگی pdf هستند با سایز نهایتا 200 kb و برنامه اصلی که باید فایل های ارسالی رو بتونه راحت دریافت کنه

ممنون میشم اگر کسی پیشنهادی و اطلاعاتی داره راهنمایی کنه
متشکرم

رامین مرادی
یک شنبه 09 اردیبهشت 1397, 09:43 صبح
برای ارسال فایل این لینک رو پیشنهاد میکنم براتون
https://www.codeproject.com/Tips/322464/Upload-a-file-using-Csharp-as-client-to-a-PHP-serv

barman.ar16
دوشنبه 10 اردیبهشت 1397, 07:03 صبح
برای ارسال فایل این لینک رو پیشنهاد میکنم براتون
https://www.codeproject.com/Tips/322464/Upload-a-file-using-Csharp-as-client-to-a-PHP-serv

ممنون از لطف و محبت تون ...
جهت دریافت (دانلود) نمونه ای موجود هست
البته انتهای همون لینکی زحمت کشیدید یک اشاره ای بهش شده ولی خیلی گنگ هست
در واقع کل کاری که باید انجام بدم برام گنگ هست نمیدونم داره چه اتفاقی میفته اون فایل php دقیقا چکار داره می کنه


در کل توی قسمت آپلود که کاربر متوجه جریان کار نمیشه اما توی دانلود میخوام هر چقدر بشه ساده تر بشه تا کاربرهای آماتور هم بتونن به راحتی فایل های آپلود شده رو دریافت کنن و به مشکل برنخورند
ممنون

رامین مرادی
دوشنبه 10 اردیبهشت 1397, 08:24 صبح
خط به خط توضیح میدم تا بهتر متوجه بشید
خط دوم میاد بررسی میکنه که این فولدر (C:/Users/dhanu-sdu/Desktop/test) وجود داره یا نه که در صورتی که وجود ندشت اون فولدر رو ایجاد میکنه و سطح دسترسی 0777 رو میده یعنی دسترسی فول . البته چون ایشون هاست محلی استفاده کردند اینشکلی مسیر دادن. شما باید تو هاستتون آدرس سایت رو بدید.
خط 4 و پنج مربوط به ایجاد فولدر و تعیید سطح دسترسی

خط 7 میگه بیا و ببین فایلی که دریافت کردی، فایل دیگه ای با همون اسم تو اون پوشه هست یا نه. که اگه موجود بود در خط 9 پیام وجود فایلی با این نام به شما داده میشه.

خط 13 هم میگه که اگه فایلی هم اسم وجود نداشت بیا فایل دریافتی رو تو اون مسر کپی کن. که ورودی اول فایلیه که دریافت کردی و ورودی دوم هم مسیر ذخیره فایل هست.



<?php
if(!(file_exists('C:/Users/dhanu-sdu/Desktop/test')))
{
mkdir('C:/Users/dhanu-sdu/Desktop/test');
chmod('C:/Users/dhanu-sdu/Desktop/test', 0777);
}
if (file_exists('C:/Users/dhanu-sdu/Desktop/test/'. $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],'C:/Users/dhanu-sdu/Desktop/test/'. $_FILES["file"]["name"]);
}

?>



برا دانلود کد زیر رو نگاه کنید.
https://stackoverflow.com/questions/6773866/download-file-and-automatically-save-it-to-folder

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

barman.ar16
دوشنبه 24 اردیبهشت 1397, 12:34 عصر
سلام مجدد

با راهنمایی دوست و استاد عزیز آقای مرادی مشکل آپلود فایل روی هاست لینوکسی حل شد
اگر کسی از دوستان موردی مشابه قضیه من داشت میتونه از همین لینک استفاده کنه :
https://www.codeproject.com/Tips/322464/Upload-a-file-using-Csharp-as-client-to-a-PHP-serv

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

حالا میمونه دریافت این فایل های آپلود شده توسط نرم افزار اصلی
چیزی که به ذهن خودم رسید بیام از اون دایرکتوری توی هاست که فایل ها دارن اونجا آپلود میشن یک لیست بگیرم و اون رو توی یک دیتاگریدویو برای کاربر نمایش بدم و بعد وقتی کاربر روی هر رکورد کلیک کرد دقیقا نام همون رکورد (نام فایل ) رو بگیرم و همون رو برم دانلود کنم و براش نمایش بدم

این متد چیزی هست که به ذهن ناقص من رسید ، از اساتید مجرب میخوام اگر راه حلی بهتری به ذهن شون میرسه تجربیاتشون رو در اختیار بنده هم بگذارند
البته این فعلا در حد تئوری پردازی هست حالا تا بعد برسیم سراغ نحوه اجراش و کدنویسی اش

پیشاپیش از راهنمایی شما متشکرم

رامین مرادی
دوشنبه 24 اردیبهشت 1397, 15:18 عصر
راهتون میشه گفت درسته اینم یه روشه.
فقط موقع آپلود فایل ها مواظب تکراری بودن اونها باشید. سعی کنید یک نام یکتا براش ایجاد کنید و بعد آپلود کنید. این نام میتونه ترکیبی از برای مثال (کد کاربر آپلود کننده+ساعت سیستم+تاریخ سیستم+شناسه سیستم)

دانلود رو هم تو همون لینکی که گذاشتین هست. فقط میمونه نحوه بدست آوردن لیست دایرکتوری از اون فولدر که اونم راحته این لینکو ببینید :چشمک: : https://stackoverflow.com/questions/15870159/list-files-on-directory-and-print-result-as-json