Пример #1
0
        public bool SaveImageToFTPServer(ImageSource imageSource, string imageLocationMemory, string imageLocationDisk)
        {
            BitmapEncoder encoder = new TiffBitmapEncoder();

            byte[] biteArray = ImageSourceToBytes(encoder, imageSource); // Function returns byte[] csv file

            using (var client = new Renci.SshNet.SftpClient(Host, Port, Username, Password))
            {
                client.Connect();
                if (client.IsConnected)
                {
                    client.ChangeDirectory(SFTPWorkingDirectory);
                    using (var ms = new MemoryStream(biteArray))
                    {
                        client.BufferSize = (uint)ms.Length;      // bypass Payload error large files
                        client.UploadFile(ms, imageLocationDisk); // imageLocationDisk == openFileDialog.FileName
                        client.RenameFile(client.WorkingDirectory + "/" + imageLocationDisk, client.WorkingDirectory + "/" + imageLocationMemory);
                        return(true);
                    }
                }
                else
                {
                    OutputMessage = "Couldn't connect to SFTP server.";
                    return(false);
                }
            }
        }
Пример #2
0
        public async Task <bool> WriteImageSourceAsByteArraySFTP(ImageSource imageSource, string imageLocationMemory)
        {
            var taskResult = await Task.Run(() =>
            {
                BitmapEncoder encoder = new TiffBitmapEncoder();
                byte[] biteArray      = ImageSourceToBytes(encoder, imageSource); // Function returns byte[] csv file

                using (var client = new Renci.SshNet.SftpClient(Host, Port, Username, Password))
                {
                    client.Connect();
                    if (client.IsConnected)
                    {
                        client.ChangeDirectory(SFTPWorkingDirectory);
                        using (var ms = new MemoryStream(biteArray))
                        {
                            client.BufferSize = (uint)ms.Length;                                               // bypass Payload error large files
                            client.Create(SFTPWorkingDirectory + "/" + imageLocationMemory);
                            client.WriteAllBytes(SFTPWorkingDirectory + "/" + imageLocationMemory, biteArray); // imageLocationDisk == openFileDialog.FileName
                            return(true);
                        }
                    }
                    else
                    {
                        OutputMessage = "Couldn't connect to SFTP server.";
                        return(false);
                    }
                }
            });

            return(taskResult);
        }
Пример #3
0
 public BitmapImage DownloadImageFromSFTP(BitmapImage bitmapImage, string imageLocation)
 {
     using (var client = new Renci.SshNet.SftpClient(Host, Port, Username, Password))
     {
         client.Connect();
         if (client.IsConnected)
         {
             client.ChangeDirectory(SFTPWorkingDirectory);
             using (MemoryStream fileStream = new MemoryStream())
             {
                 client.DownloadFile(client.WorkingDirectory + "/" + imageLocation, fileStream);
                 bitmapImage = new BitmapImage();
                 bitmapImage.BeginInit();
                 bitmapImage.StreamSource = fileStream;
                 bitmapImage.CacheOption  = BitmapCacheOption.OnLoad;
                 bitmapImage.EndInit();
                 return(bitmapImage);
             }
         }
         else
         {
             OutputMessage = "Couldn't connect to SFTP server.";
             return(null);
         }
     }
 }
Пример #4
0
        public async Task <bool> DeleteFileFromFTPServer(string imageLocation)
        {
            //BitmapEncoder encoder = new TiffBitmapEncoder();
            // byte[] biteArray = ImageSourceToBytes(encoder, QuestionImage);
            var taskResult = await Task.Run(() =>
            {
                using (var client = new Renci.SshNet.SftpClient(Host, Port, Username, Password))
                {
                    client.Connect();
                    if (client.IsConnected)
                    {
                        client.ChangeDirectory(SFTPWorkingDirectory);
                        //using (var ms = new MemoryStream(biteArray))
                        // {
                        //client.BufferSize = (uint)ms.Length; // bypass Payload error large files
                        if (client.Exists(client.WorkingDirectory + "/" + imageLocation))
                        {
                            client.DeleteFile(client.WorkingDirectory + "/" + imageLocation);
                        }
                        // }
                        return(true);
                    }
                    else
                    {
                        OutputMessage = "Couldn't connect to SFTP server";
                        return(false);
                    }
                }
            });

            return(taskResult);
        }
Пример #5
0
        public async Task <byte[]> ReadByteArrayFromSFTP(string imageLocationMemory)
        {
            var taskResult = await Task.Run(() =>
            {
                using (var client = new Renci.SshNet.SftpClient(Host, Port, Username, Password))
                {
                    client.Connect();
                    if (client.IsConnected)
                    {
                        client.ChangeDirectory(SFTPWorkingDirectory);
                        if (client.Exists(client.WorkingDirectory + "/" + imageLocationMemory))
                        {
                            return(client.ReadAllBytes(client.WorkingDirectory + "/" + imageLocationMemory));// imageLocationDisk == openFileDialog.FileName
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else
                    {
                        OutputMessage = "Couldn't connect to SFTP server.";
                        return(null);
                    }
                }
            });

            return(taskResult);
        }
Пример #6
0
        /// <summary>
        /// Uploads a file to the SFTP server.
        /// </summary>
        /// <param name="sourcePath">The local path of the file to read from on the client.</param>
        /// <param name="destinationFolderPath">The remote folder path to write to on the server.</param>
        /// <param name="destinationFilename">The remote filename to write to on the server.</param>
        /// <param name="isLinux">Determines if we are connecting to a Linux server (if so then backslashes in the destination folder path are replaced with forward slashes).</param>
        /// <returns>True if the upload was successful otherwise false if the upload failed.</returns>
        public bool UploadFile(string sourcePath, string destinationFolderPath, string destinationFilename, bool isLinux)
        {
            try
            {
                string initialWorkingDirectory = _sftpClient.WorkingDirectory;

                if (!string.IsNullOrEmpty(destinationFolderPath))
                {
                    if (isLinux)
                    {
                        destinationFolderPath = destinationFolderPath.Replace("\\", "/");

                        foreach (string folder in destinationFolderPath.Split('/'))
                        {
                            CreateRemoteDirectory(folder);

                            _sftpClient.ChangeDirectory(folder);
                        }
                    }
                    else
                    {
                        CreateRemoteDirectory(destinationFolderPath);

                        _sftpClient.ChangeDirectory(destinationFolderPath);
                    }
                }

                using (var fileStream = File.OpenRead(sourcePath))
                {
                    _sftpClient.UploadFile(fileStream, destinationFilename, true);
                }

                // We have to make sure that we change directory back to the initial working directory
                // so we avoid creating sub-folders within sub-folders. We always want to start from the root
                // with each call of the UploadFile method.
                _sftpClient.ChangeDirectory(initialWorkingDirectory);

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #7
0
        public string SendIt()
        {
            var host    = ConfigurationManager.AppSettings["Host"];
            var zipFile = Factory.GetZipFile();

            Renci.SshNet.SftpClient sftpClient = new Renci.SshNet
                                                 .SftpClient(host,
                                                             ConfigurationManager.AppSettings["FtpUserName"],
                                                             ConfigurationManager.AppSettings["FtpUserPass"]);
            sftpClient.Connect();

            sftpClient
            .ChangeDirectory(ConfigurationManager.AppSettings["WorkingDirectory"]);

            using (var fileStream = new FileStream(zipFile, FileMode.Open))
            {
                sftpClient.BufferSize = 4 * 1024; // bypass Payload error large files
                sftpClient.UploadFile(fileStream, Path.GetFileName(zipFile));
            }

            return(new WebClient()
                   .DownloadString(ConfigurationManager.AppSettings["UpdateDatabaseUrl"]));
        }
Пример #8
0
        private static void RenameAndUploadFilesForConservazione()
        {
            if (!YES_TO_UPLOAD_CONSERVAZIONE)
            {
                return;
            }


            Utils.CLogger.WriteLog("sending per conservazione inizio");

            DirectoryInfo d;

            FileInfo[] Files;

            try
            {
                if (SFTPClient.IsConnected)
                {
                    d     = new DirectoryInfo(LOCAL_UPLOAD_FOLDER_CONSERVAZIONE);
                    Files = d.GetFiles("*.ctrl");

                    foreach (FileInfo file in Files)
                    {
                        try
                        {
                            Utils.CLogger.WriteLog("deleting: " + file.FullName);
                            System.IO.File.Delete(file.FullName);
                            Utils.CLogger.WriteLog(file.FullName + "deleted!!!");
                        }
                        catch (Exception ex)
                        {
                            Utils.CLogger.WriteLog(ex);
                        }
                    }

                    Files = d.GetFiles("*.tmp");
                    string xmlname = "";

                    foreach (FileInfo file in Files)
                    {
                        try
                        {
                            xmlname = file.FullName.Replace(".tmp", ".xml");
                            Utils.CLogger.WriteLog("renaming: " + file.FullName + " to " + xmlname);
                            if (System.IO.File.Exists(file.FullName))
                            {
                                System.IO.File.Move(file.FullName, xmlname);
                            }
                            Utils.CLogger.WriteLog(file.FullName + "renamed!!!");
                        }
                        catch (Exception ex)
                        {
                            Utils.CLogger.WriteLog(ex);
                        }
                    }


                    SFTPClient.ChangeDirectory(SFTP_UPLOAD_FOLDER_CONSERVAZIONE);
                    SFTPClient.BufferSize = 4 * 1024; // bypass Payload error large files

                    Files = d.GetFiles();

                    //destination_full_name = System.IO.Path.Combine(LOCAL_UPLOAD_FOLDER_BACKUP, file.Name);

                    foreach (FileInfo file in Files)
                    {
                        try
                        {
                            Utils.CLogger.WriteLog("uploading: " + file.FullName + " to ");

                            using (var fileStream = new FileStream(file.FullName, FileMode.Open))
                            {
                                Utils.CLogger.WriteLog("Uploading " + file.FullName);
                                SFTPClient.UploadFile(fileStream, file.Name);
                                Utils.CLogger.WriteLog(file.FullName + "Uploaded");
                            }


                            Utils.CLogger.WriteLog(file.FullName + "uploaded !!!");

                            Utils.CLogger.WriteLog("moving " + file.FullName + " to backup folder");
                            System.IO.File.Move(file.FullName, System.IO.Path.Combine(LOCAL_UPLOAD_FOLDER_CONSERVAZIONE_BACKUP, file.Name));
                            Utils.CLogger.WriteLog(file.FullName + " copied");
                        }
                        catch (Exception ex)
                        {
                            Utils.CLogger.WriteLog(ex);
                        }
                    }


                    foreach (FileInfo file in Files)
                    {
                        try
                        {
                        }
                        catch (Exception ex)
                        {
                            Utils.CLogger.WriteLog(ex);
                        }
                    }
                }
                Utils.CLogger.WriteLog("sending per conservazione fine");
            }
            catch (Exception ex)
            {
                Utils.CLogger.WriteLog(ex);
            }
        }