Last active
January 22, 2020 17:41
-
-
Save alexandair/4665ea17c820331aa2dfe9e3193e18c8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$sourceuri = "ftp://speedtest.tele2.net/1MB.zip" | |
$targetpath = "C:\temp\1mb.zip" | |
$username = "anonymous" | |
$password = "anonymous" | |
# Create a FTPWebRequest object to handle the connection to the ftp server | |
$ftprequest = [System.Net.FtpWebRequest]::create($sourceuri) | |
# set the request's network credentials for an authenticated connection | |
$ftprequest.Credentials = New-Object System.Net.NetworkCredential($username,$password) | |
$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile | |
$ftprequest.UseBinary = $true | |
$ftprequest.KeepAlive = $false | |
# send the ftp request to the server | |
$ftpresponse = $ftprequest.GetResponse() | |
# get a download stream from the server response | |
$responsestream = $ftpresponse.GetResponseStream() | |
# create the target file on the local system and the download buffer | |
$targetfile = New-Object IO.FileStream ($targetpath,[IO.FileMode]::Create) | |
[byte[]]$readbuffer = New-Object byte[] 1024 | |
# loop through the download stream and send the data to the target file | |
do{ | |
$readlength = $responsestream.Read($readbuffer,0,1024) | |
$targetfile.Write($readbuffer,0,$readlength) | |
} | |
while ($readlength -ne 0) | |
$targetfile.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment