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); } } }
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); }
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); } } }
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); }
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); }
/// <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); } }
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"])); }
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); } }