none
使用 URLDownloadToFile API 下載web上的檔案,有些電腦無法下載成功 RRS feed

  • 問題

  •  

    請教各位:

           我在程式內使用URLDownloadToFile 下載web上的文字檔,某些電腦是可以成功,

    但某些電腦郤會失敗,目前已知vista 一定會失敗, xp有些可以,有些不行..

    猜測應該是local電腦權限的關係,但不知道要加什麼樣的權限,才能正常的下載檔案?

    Daisy1974
    2008年12月15日 上午 08:42

解答

  • 程式執行時有下載目錄的寫入權限嗎?

    如果下載檔案無法建立或是下載取消,URLDownloadToFile 也是會回傳S_OK。

    2008年12月15日 上午 11:09

所有回覆

  • 不能下載有錯誤訊息,一併貼出來。

     

    2008年12月15日 上午 09:56
  • 以下是我的程式碼, 若發生錯誤時,lngRetVal 為空值...並不會有錯誤

     

    Public Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

     

     

    Public Function DownloadFile(Url As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
        lngRetVal = URLDownloadToFile(0, Url, LocalFilename, 0, 0)
        If lngRetVal = 0 Then
            DownloadFile = True
         End If
    End Function

    2008年12月15日 上午 10:29
  • 程式執行時有下載目錄的寫入權限嗎?

    如果下載檔案無法建立或是下載取消,URLDownloadToFile 也是會回傳S_OK。

    2008年12月15日 上午 11:09
  • Return Value

    Returns one of the following values.

    S_OK The operation succeeded.
    E_OUTOFMEMORY The buffer length is invalid, or there is insufficient memory to complete the operation.
    INET_E_DOWNLOAD_FAILURE The download of the specified resource failed.

     

    注意對應的 IE 版本差異,跟 http / ftp URL 的差異
    2008年12月15日 上午 11:20
  • 謝謝您提供的測試方式, 己經可以正常執行,

    但透過SSL +  vista 還是無法成功..尚在努力查問題..

     

    2008年12月17日 上午 01:59
  • ?

    SSL FTP 是指 ftps 嗎?那就沒支援喔~

     

    在 MSDN 中說請參見 RFC1738

     

    Code Snippet

    Creating and Using URL Monikers

    ms-help://MS.MSDNQTR.v80.cht/MS.MSDN.v80/MS.WEBDEV.v10.en/URLMON/workshop/networking/moniker/overview/creating_using.htm

     

    Prerequisites and Requirements

    This documentation assumes that you have an understanding of Microsoft Win32 programming and an understanding of OLE and COM programming. For the Internet-related interfaces, methods, and functions, an understanding of the format and syntax of URLs is also required. For more information, see RFC 1738, Uniform Resource Locators (URL) .

    To compile programs that use the URL monikers, make sure the Urlmon.h header file is in the include directory and the Urlmon.lib library file is in the library directory of the C/C++ compiler you use.

     

     

    RFC1738

    Code Snippet

    3. Specific Schemes
    The mapping for some existing standard and experimental protocols is outlined in the BNF syntax definition. Notes on particular protocols follow. The schemes covered are:

    ftp File Transfer protocol
    http Hypertext Transfer Protocol
    gopher The Gopher protocol
    mailto Electronic mail address
    news USENET news
    nntp USENET news using NNTP access
    telnet Reference to interactive sessions
    wais Wide Area Information Servers
    file Host-specific file names
    prospero Prospero Directory Service

     

     

    沒有 ftps

    2008年12月17日 上午 08:16
  • 我的意思是,若os為Vista , 以下面的fun

    Call DownloadFile(https://xxx.xxx.xxx/AAA.txt,"D:\AAA.txt")

    會無法成功!

     

     

    Public Function DownloadFile(Url As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
        lngRetVal = URLDownloadToFile(0, Url, LocalFilename, 0, 0)
        If lngRetVal = 0 Then
            DownloadFile = True
         End If
    End Function

     

     

     

    2008年12月18日 上午 01:20