none
urldownloadtofile을 통해 인터넷에서 프로그램을 다운로드 하고 있는데 특정 컴퓨터에서 다운로드가 안되는 경우가 있습니다. RRS feed

  • 질문

  • 제목과 같이 VB.net를 이용하여 프로그램 하였으며,

    urldownloadtofile을 통해 인터넷에서 xml 파일을 다운로드 하고 있는데 특정 컴퓨터에서 다운로드가 안되는 경우가 있습니다.

    특정 이유가 있을지요 대부분의 컴퓨터에서는 잘되는데 특정적인 몇몇 컴퓨터에서만 다운로드가 되지 않습니다.


    2019년 10월 7일 월요일 오전 5:59

모든 응답

  • 구체적인 이유가 무엇인지는 모르겠지만 현제 문제는 vb.net 파일 다운로드 코드가 일부 컴퓨터에 작동되지 않는다는 것입니다. 그러기에 우선 코드에 문제가 있는지 아니면 컴퓨터에 문제가 있는지 확인을 해야 합니다. 코드를 사용하지 않고 웹 페이지에서 직접 다운로드하는 것을 시도해 보시기 바랍니다. 다운로드 할 수 없다면 컴퓨터에 문제가있는 것입니다.

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 10월 8일 화요일 오전 6:16
    중재자
  • 직접 다운로드능 가능합니다.

    또한 일부컴퓨터에서만 작동을 하지 않는것으로 보아 코드에도 문제가 없는듯 합니다.

    작성한 코드는 다음과 같습니다.

        Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
       Alias "DeleteUrlCacheEntryA" _
      (ByVal lpszUrlName As String) As Long
        Private 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
        Private Function GetFile(URL As String) As String
            'Purpose: returns file title of a URL or local path
            GetFile = Right$(URL, Len(URL) - InStrRev(URL, "/"))
        End Function
        Public Sub Excelcall(codes As Integer, TU As Double, TA As Integer)
            Dim strImageAddress As String 'stores the address of the image
            Dim strImageFileName As String
            strImageAddress = "http://myURL"
            strImageFileName = GetFile(strImageAddress)
            Dim Downloadfile
            Dim dn As New System.Net.WebClient
            Try
                If Dir(Environ("USERPROFILE") + "\Downloads\myfile.xls") = "" Then
                    'My.Computer.Network.DownloadFile(strImageAddress, Environ("USERPROFILE") + "\Downloads\myfile.xls", "", "", False, 500, True)
                    Downloadfile = URLDownloadToFile(0, strImageAddress, Environ("USERPROFILE") + "\Downloads\myfile.xls", 0, 0)
                Else
                    My.Computer.FileSystem.DeleteFile(Environ("USERPROFILE") + "\Downloads\myfile.xls")
                    Downloadfile = URLDownloadToFile(0, strImageAddress, Environ("USERPROFILE") + "\Downloads\myfile.xls", 0, 0)
                End If
                If Downloadfile <> 0 Then
                    MsgBox("error code : " + Downloadfile)
                End If
                DeleteUrlCacheEntry(strImageAddress)
            Catch ex As Exception
                MsgBox("파일다운로드 오류" & vbCrLf & ex.Message)
            End Try
        End Sub

    2019년 10월 11일 금요일 오전 11:46
  • 말씀하신 것으로 판단하면 코드와 컴퓨터에는 문제가 없는 것 같습니다. 컴퓨터가 웹에서 직접 파일을 다운로드 할 수 있다면 아래 제 코드로 테스트해 보시기 바랍니다.

    Public Sub DownLoad(ByVal FileName As String, ByVal FilePath As String)
        Dim result As String = String.Empty
        Dim wc As WebClient = New WebClient()
        wc.BaseAddress = FilePath
        Dim bytes As Byte()
        bytes = wc.DownloadData(wc.BaseAddress)
        Response.ContentType = "application/octet-stream"
        Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", HttpUtility.UrlEncode(FileName), System.Text.Encoding.UTF8))
        Dim ms As MemoryStream = New MemoryStream(bytes)
        ms.WriteTo(Response.OutputStream)
        ms.Dispose()
        ms.Close()
    End Sub
    

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 10월 14일 월요일 오전 8:36
    중재자
  • 웹에서 직접 파일을 다운로드 할수 있습니다.

    말씀해주신 코드를 위 코드에 어떻게 적용해야 할지 모르겠습니다.


    aden

    2019년 10월 16일 수요일 오전 7:37
  • 아래 코드를 사용하여 다운로드가 가능한지 확인하시기 바랍니다.

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Using client = New WebClient()
                client.DownloadFile("http://example.com/file/song/a.mpeg", "D:\a.mpeg")
            End Using
    End Sub
    

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2019년 10월 17일 목요일 오전 8:48
    중재자