View Full Version : سوال: تشخیص صحیح بودن لینک دانلود یک فایل
بهروز عباسی
پنج شنبه 03 فروردین 1391, 05:10 صبح
درود به همه برنامه نویس ها
سال نو مبارک
من یه برنامه کوچولو نوشتم برای مدیریت فایل های وب سایتم این برنامه در ویندوز اجرا میشه و لیستی از فایل ها(با آدرس کامل و قابل دانلود) دارد
حالا فقط باید به صورت دوره ای ایتم های این لیست را چک کند اگر لینک دانلود فایل مشکل داشت(وجودنداشت یا ..) به من اطلاع دهد
مشکل من:
مشکل من اینه که نمیتونم چک لینک دانلود درسته هست یانه
ممنون از کمک پیشاپیش
Felony
پنج شنبه 03 فروردین 1391, 07:01 صبح
میشه همچین کدی نوشت :
var
Http: TIdHTTP;
begin
Http := TIdHTTP.Create(nil);
try
try
Http.Head(Edit1.Text);
except
on E: EIdHTTPProtocolException do
if (E.ErrorCode = 404) then
raise Exception.Create('The link is not valid');
end;
MessageDlg(Format('The file is exists and the size of it is %d KB',
[(Http.Response.ContentLength) div 1024]), mtInformation, [mbOK], 0);
finally
Http.Free;
end;
end;
بهروز عباسی
پنج شنبه 03 فروردین 1391, 07:09 صبح
ممنون همین خوبه اما موقع چک کردن برنامه هنگ میکنه چکارش کنم؟
Felony
پنج شنبه 03 فروردین 1391, 07:10 صبح
عملیات بررسی صحت لینک رو تو یک ترد جدا اجرا کنید .
بهروز عباسی
پنج شنبه 03 فروردین 1391, 07:12 صبح
از اینم استفاده کردم IdAntiFreeze شد البته برای یکی نه کل لیست
خیلی ممنون از کمک
یا علی
بهروز عباسی
پنج شنبه 03 فروردین 1391, 08:10 صبح
دوستان شرمنده روش بالا شدنی هست اما سرعتش برای تعداد زیادی فایل (مثلاً100) خیلی پاینه و ...
راه سریع تری هست
سرعت این روش با افزایش سرعت اینرنت سیستم اجرا کننده افزایش پیدا میکنه یا این سرعت پائین چک کردن ثابته
Felony
پنج شنبه 03 فروردین 1391, 08:42 صبح
دیگه چه راهی ؟!
در هر صورت باید درخواستتون برای سروری که فایل روش قرار داره ارسال بشه و سرور بهتون جواب بده ، این عملیات ارسال درخواست و دریافت نتجیه درخواست بسته به سرعت اینترنت طول میکشه .
pnkermanshahan
پنج شنبه 03 فروردین 1391, 10:33 صبح
توی ویندوز بهتره که از اون آی پی - پینگ بگیری اگه جواب داد خوب پس لینک صحیحه اگه نه دیگه هیچی
vcldeveloper
پنج شنبه 03 فروردین 1391, 13:30 عصر
توی ویندوز بهتره که از اون آی پی - پینگ بگیری اگه جواب داد خوب پس لینک صحیحه اگه نه دیگه هیچی پینگ از IP ربطی به وجود یا عدم وجود یک فایل روی یک سرور نداره؛ فایل مربوطه وجود هم نداشته باشه، اون سرور جواب پینگ رو بدون مشکل میده!
دوستان شرمنده روش بالا شدنی هست اما سرعتش برای تعداد زیادی فایل (مثلاً100) خیلی پاینه و ...مجبور نیستی همه لینک ها رو در یک Thread چک کنی، تعدادی Thread درست کن (مثلا 8 تا 16 Thread، اما بیش از حد درست نکن که سرور Reject ات کنه).
سرعت این روش با افزایش سرعت اینرنت سیستم اجرا کننده افزایش پیدا میکنه یا این سرعت پائین چک کردن ثابته ارسال یک دستور HEADER برای سرور و پردازش Header دریافتی بار پردازشی بسیار پایینی داره، تاخیر مربوط به انتظار برای ارسال و دریافت پیام از/به سرور هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.