آژانس هواپیماییexchanging

تشخیص وجود فایل در اینترنت

شروع موضوع توسط peiman ‏13 فوریه 2006 در انجمن Delphi

  1. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    سلام به همه
    چطوری میشه چک کرد که یه فایلی تو اینترنت هست یا نه
    میخوام قبل از اینکه برنامه شروع به دانلودش کنه چک کنم که وسط کار اررور نده
    خیلی ممنون
     
  2. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    می تونی به کمک TIDHTTP که از کامپوننت های iNDY هست یه درخواست HEAD بفرستی و نتیجه رو بررسی کنی ببین فایل وجود داره یا نه
     
  3. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    یه مقداری بیشتر راهنمایی میکنی
    idhttp خروجی بوولین نداره که تو if استفاده کنم
     
  4. IcedAngel

    IcedAngel Registered User

    تاریخ عضویت:
    ‏13 اکتبر 2005
    نوشته ها:
    1,286
    تشکر شده:
    20
    محل سکونت:
    Philadelphia
    میشه این رو یکم بیشتر توضیح بدی من بیلمیره:blink: !... منم همین مشکل رو دارم ... ممنون :)
     
  5. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    متا سفانه من الان دسترسی به دلفی ندارم
    اما روش کار این طوریه

    idhttp1.head('file_url');
    if idhttp1.responsecode<>404 then
    showmesssage('file exist')
    else
    showmessage('file not found')

    البته این روش بروی بعضی از سرویس دهنده جواب نمیده اما در صدشون خیلی کمه و ممولا جز سایتهایی مثل رپیدشیر هستن
     
  6. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    سلام
    الان اجراش کردم
    اگه فایل وجود داشته باشه درست کار میکنه ولی اگه نباشه برنامه هنگ میکنه
    و به جای اینکه بگه فایل وجود نداره پیغام time out رو میده
    به هر حال دستت درد نکنه همینم کلی کمکه ولی نمیشه اون اررور رو هم برطرف کرد؟
     
  7. appbannerkhuniresbanner
  8. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    باید صبر کنید من یه دلفی نصب کنم ببین این اررو چیه؟
     
  9. IcedAngel

    IcedAngel Registered User

    تاریخ عضویت:
    ‏13 اکتبر 2005
    نوشته ها:
    1,286
    تشکر شده:
    20
    محل سکونت:
    Philadelphia
    من که دلفی بلد نیستم راه دیگه ای وجود نداره ؟:blink:
     
  10. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
  11. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    ممنون میشم اگه این کار رو بکنی
     
  12. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    اینو ببینبد اگه مشکلی بود در خدمتم
     

    فایل های ضمیمه:

    • idhttp.zip
      اندازه فایل:
      3.8 KB
      نمایش ها:
      27
  13. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    ممنون کامله
    به سوال دانلودم هم جواب دادی دستت درد نکنه
     
  14. avajang.com .leftavajang.com.right
  15. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    این کامپوننتها رو از کجا یاد گرفتی
    من که جایی تا حالا اموزشش رو ندیدم
     
  16. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    منم تا حالا آموزشش رو ندیدماما با تمرین یاد گرفتم مثال های خود Indy خوبن برای شروع
     
  17. keyvan_itman

    keyvan_itman کاربر تازه وارد

    تاریخ عضویت:
    ‏15 مارس 2006
    نوشته ها:
    118
    تشکر شده:
    0
    سلام به همه دوستان.
    چرا من نمیتونم این فایلو دانلود کنم؟؟؟:(
     
  18. Mojgan110

    Mojgan110 کاربر تازه وارد

    تاریخ عضویت:
    ‏5 مارس 2006
    نوشته ها:
    240
    تشکر شده:
    8
    محل سکونت:
    www.DotNetSource.com
    من هم يه پروژه داشتم كه بايد كانشكن استرينگ را از يه فايل توي اينترنت ميگرفتم .
    واسه همين ، چند تا تابع نوشتم واسه اين كار كه خب درست هم بودند و تست كردمشون ديگه.

    اصلا اول ببينيم كه به اينترنت وصل هستيم يا نه ؟ :happy:

    کد:
    function GetOnlineStatus : Boolean;
    var
      ConTypes : Integer;
    begin
      ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
      if (InternetGetCONNECTEDState(@ConTypes, 0) = False) then
        Result := False
        else
          Result := True;
    end;
    حالا بهدش ببينيم كه فايلي كه ميخوايم دانلودش كنيم ، در مسيرمون هست يا نه ، آدرسه كامله مسير را بدهيد به پارامتر تابع زير :

    کد:
    Function CheckUrl(url:string):boolean;
    
    var
    hSession, hfile: HINTERNET;
    dwindex,dwcodelen : DWORD;
    dwcode: array[1..20] of char;
    res : pchar;
    begin
      if pos('http://',lowercase(url))=0 then
         url := 'http://'+url;
      Result := false;
      hSession := InternetOpen('InetURL:/1.0',
           INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
      if assigned(hsession) then
        begin
          hfile := InternetOpenUrl(
               hsession,
               pchar(url),
               nil,
               0,
               INTERNET_FLAG_RELOAD,
               0);
          dwIndex  := 0;
          dwCodeLen := 10;
          HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,
                  @dwcode, dwcodeLen, dwIndex);
          res := pchar(@dwcode);
          result:= (res ='200') or (res ='302');
          if assigned(hfile) then
            InternetCloseHandle(hfile);
          InternetCloseHandle(hsession);
        end;
    
    end;
    :happy:
     
  19. Mojgan110

    Mojgan110 کاربر تازه وارد

    تاریخ عضویت:
    ‏5 مارس 2006
    نوشته ها:
    240
    تشکر شده:
    8
    محل سکونت:
    www.DotNetSource.com
  20. peiman

    peiman Registered User

    تاریخ عضویت:
    ‏23 فوریه 2003
    نوشته ها:
    1,544
    تشکر شده:
    20
    ممنون مژگان جان!!