Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # create the FtpWebRequest and configure it
- $ftp = [System.Net.FtpWebRequest]::Create("ftp://localhost/me.png")
- $ftp = [System.Net.FtpWebRequest]$ftp
- $ftp.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
- $ftp.Credentials = new-object System.Net.NetworkCredential("anonymous","anonymous@localhost")
- $ftp.UseBinary = $true
- $ftp.UsePassive = $true
- # read in the file to upload as a byte array
- $content = [System.IO.File]::ReadAllBytes("C:me.png")
- $ftp.ContentLength = $content.Length
- # get the request stream, and write the bytes into it
- $rs = $ftp.GetRequestStream()
- $rs.Write($content, 0, $content.Length)
- # be sure to clean up after ourselves
- $rs.Close()
- $rs.Dispose()
- $File = "D:Devsomefilename.zip";
- $ftp = "ftp://username:password@example.com/pub/incoming/somefilename.zip";
- Write-Host -Object "ftp url: $ftp";
- $webclient = New-Object -TypeName System.Net.WebClient;
- $uri = New-Object -TypeName System.Uri -ArgumentList $ftp;
- Write-Host -Object "Uploading $File...";
- $webclient.UploadFile($uri, $File);
- ftp -s:script.txt
- $server = "ftp.lolcats.com"
- $filelist = "file1.txt file2.txt"
- "open $server
- user $user $password
- binary
- cd $dir
- " +
- ($filelist.split(' ') | %{ "put ""$_""`n" }) | ftp -i -in
- #Directory where to find pictures to upload
- $Dir= 'c:fffmedias'
- #Directory where to save uploaded pictures
- $saveDir = 'c:fffsave'
- #ftp server params
- $ftp = 'ftp://10.0.1.11:21/'
- $user = 'user'
- $pass = 'pass'
- #Connect to ftp webclient
- $webclient = New-Object System.Net.WebClient
- $webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
- #Initialize var for infinite loop
- $i=0
- #Infinite loop
- while($i -eq 0){
- #Pause 1 seconde before continue
- Start-Sleep -sec 1
- #Search for pictures in directory
- foreach($item in (dir $Dir "*.jpg"))
- {
- #Set default network status to 1
- $onNetwork = "1"
- #Get picture creation dateTime...
- $pictureDateTime = (Get-ChildItem $item.fullName).CreationTime
- #Convert dateTime to timeStamp
- $pictureTimeStamp = (Get-Date $pictureDateTime).ToFileTime()
- #Get actual timeStamp
- $timeStamp = (Get-Date).ToFileTime()
- #Get picture lifeTime
- $pictureLifeTime = $timeStamp - $pictureTimeStamp
- #We only treat pictures that are fully written on the disk
- #So, we put a 2 second delay to ensure even big pictures have been fully wirtten in the disk
- if($pictureLifeTime -gt "2") {
- #If upload fails, we set network status at 0
- try{
- $uri = New-Object System.Uri($ftp+$item.Name)
- $webclient.UploadFile($uri, $item.FullName)
- } catch [Exception] {
- $onNetwork = "0"
- write-host $_.Exception.Message;
- }
- #If upload succeeded, we do further actions
- if($onNetwork -eq "1"){
- "Copying $item..."
- Copy-Item -path $item.fullName -destination $saveDir$item
- "Deleting $item..."
- Remove-Item $item.fullName
- }
- }
- }
- }
- #Add-FtpFile -ftpFilePath "ftp://myHost.com/folder/somewhere/uploaded.txt" -localFile "C:tempfile.txt" -userName "User" -password "pw"
- function Add-FtpFile($ftpFilePath, $localFile, $username, $password) {
- $ftprequest = New-FtpRequest -sourceUri $ftpFilePath -method ([System.Net.WebRequestMethods+Ftp]::UploadFile) -username $username -password $password
- Write-Host "$($ftpRequest.Method) for '$($ftpRequest.RequestUri)' complete'"
- $content = $content = [System.IO.File]::ReadAllBytes($localFile)
- $ftprequest.ContentLength = $content.Length
- $requestStream = $ftprequest.GetRequestStream()
- $requestStream.Write($content, 0, $content.Length)
- $requestStream.Close()
- $requestStream.Dispose()
- }
- #Add-FtpFolderWithFiles -sourceFolder "C:temp" -destinationFolder "ftp://myHost.com/folder/somewhere/" -userName "User" -password "pw"
- function Add-FtpFolderWithFiles($sourceFolder, $destinationFolder, $userName, $password) {
- Add-FtpDirectory $destinationFolder $userName $password
- $files = Get-ChildItem $sourceFolder -File
- foreach($file in $files) {
- $uploadUrl ="$destinationFolder/$($file.Name)"
- Add-FtpFile -ftpFilePath $uploadUrl -localFile $file.FullName -username $userName -password $password
- }
- }
- #Add-FtpFolderWithFilesRecursive -sourceFolder "C:temp" -destinationFolder "ftp://myHost.com/folder/" -userName "User" -password "pw"
- function Add-FtpFolderWithFilesRecursive($sourceFolder, $destinationFolder, $userName, $password) {
- Add-FtpFolderWithFiles -sourceFolder $sourceFolder -destinationFolder $destinationFolder -userName $userName -password $password
- $subDirectories = Get-ChildItem $sourceFolder -Directory
- $fromUri = new-object System.Uri($sourceFolder)
- foreach($subDirectory in $subDirectories) {
- $toUri = new-object System.Uri($subDirectory.FullName)
- $relativeUrl = $fromUri.MakeRelativeUri($toUri)
- $relativePath = [System.Uri]::UnescapeDataString($relativeUrl.ToString())
- $lastFolder = $relativePath.Substring($relativePath.LastIndexOf("/")+1)
- Add-FtpFolderWithFilesRecursive -sourceFolder $subDirectory.FullName -destinationFolder "$destinationFolder/$lastFolder" -userName $userName -password $password
- }
- $ftp.Proxy = $null;
- $webclient = New-Object System.Net.WebClient
- Register-ObjectEvent -InputObject $webclient -EventName "UploadProgressChanged" -Action { Write-Progress -Activity "Upload progress..." -Status "Uploading" -PercentComplete $EventArgs.ProgressPercentage } > $null
- $File = "filename.zip"
- $ftp = "ftp://user:password@server/filename.zip"
- $uri = New-Object System.Uri($ftp)
- try{
- $webclient.UploadFileAsync($uri, $File)
- }
- catch [Net.WebException]
- {
- Write-Host $_.Exception.ToString() -foregroundcolor red
- }
- while ($webclient.IsBusy) { continue }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement