System.Windows.Forms.Form _parentForm; System.Windows.Forms.TextBox _uploadStatus; System.Windows.Forms.ProgressBar _progressBar; Vintasoft.Twain.ImageUploading.Ftp.FtpUpload _ftpUpload = null; bool _sendingData; /// <summary> /// Upload acquired image to FTP server. /// </summary> public void UploadAcquiredImageAsJpegToFtp(Vintasoft.Twain.AcquiredImage acquiredImage) { try { // create FTP uploader _ftpUpload = new Vintasoft.Twain.ImageUploading.Ftp.FtpUpload(_parentForm); // subscribe to the events _ftpUpload.StatusChanged += new System.EventHandler<Vintasoft.Twain.ImageUploading.Ftp.StatusChangedEventArgs>(_ftpUpload_StatusChanged); _ftpUpload.ProgressChanged += new System.EventHandler<Vintasoft.Twain.ImageUploading.Ftp.ProgressChangedEventArgs>(_ftpUpload_ProgressChanged); _ftpUpload.Completed += new System.EventHandler<Vintasoft.Twain.ImageUploading.Ftp.CompletedEventArgs>(_ftpUpload_Completed); // set FTP upload parameters _ftpUpload.Host = "ftp.test.com"; _ftpUpload.User = "user"; _ftpUpload.Password = "password"; _ftpUpload.PassiveMode = true; _ftpUpload.Timeout = 2000; _ftpUpload.Path = "/images/"; _ftpUpload.AddFile("scan.jpg", acquiredImage.GetAsStream(new Vintasoft.Twain.ImageEncoders.TwainJpegEncoderSettings())); // post data to the server _ftpUpload.PostData(); } catch (System.Exception ex) { _uploadStatus.Text = string.Format("{0}{1}", _uploadStatus.Text, ex); } finally { // set maximal value of the progress bar _progressBar.Maximum = _ftpUpload.BytesTotal; } } /// <summary> /// Status of FTP uploading is changed. /// </summary> private void _ftpUpload_StatusChanged(object sender, Vintasoft.Twain.ImageUploading.Ftp.StatusChangedEventArgs e) { // show current upload status in the status string _uploadStatus.Text = string.Format("{0}{1}{2}", _uploadStatus.Text, e.StatusString, System.Environment.NewLine); } /// <summary> /// FTP uploading is in progress. /// </summary> private void _ftpUpload_ProgressChanged(object sender, Vintasoft.Twain.ImageUploading.Ftp.ProgressChangedEventArgs e) { // show the size of uploading data (once per upload) if (!_sendingData) { _uploadStatus.Text = string.Format("{0}({1} bytes){2}", _uploadStatus.Text, e.BytesTotal, System.Environment.NewLine); _sendingData = true; } // show current upload progress in progress bar _progressBar.Value = e.BytesUploaded; // show current upload progress, in bytes, in the status string _uploadStatus.Text = string.Format("{0}{1} ", _uploadStatus.Text, e.BytesUploaded); } /// <summary> /// FTP uploading is completed. /// </summary> private void _ftpUpload_Completed(object sender, Vintasoft.Twain.ImageUploading.Ftp.CompletedEventArgs e) { _uploadStatus.Text = string.Format("{0}{1}", _uploadStatus.Text, System.Environment.NewLine); if (e.ErrorCode == Vintasoft.Twain.ImageUploading.Ftp.ErrorCode.None) _uploadStatus.Text = string.Format("{0}FTP: Image is uploaded successfully!", _uploadStatus.Text); else _uploadStatus.Text = string.Format("{0}FTP error: {1}", _uploadStatus.Text, e.ErrorString); _uploadStatus.Text = string.Format("{0}", System.Environment.NewLine); }
Dim _parentForm As Form Dim _uploadStatus As TextBox Dim _progressBar As ProgressBar Dim _ftpUpload As Vintasoft.Twain.ImageUploading.Ftp.FtpUpload Dim _sendingData As Boolean = False ' Upload acquired image to HTTP server. Private Sub UploadAcquiredImageAsJpegToFtp(ByVal acquiredImage As Vintasoft.Twain.AcquiredImage) Try ' create FTP uploader _ftpUpload = New Vintasoft.Twain.ImageUploading.Ftp.FtpUpload(_parentForm) ' subscribe to the events AddHandler _ftpUpload.StatusChanged, AddressOf _ftpUpload_StatusChanged AddHandler _ftpUpload.ProgressChanged, AddressOf _ftpUpload_ProgressChanged AddHandler _ftpUpload.Completed, AddressOf _ftpUpload_Completed ' set FTP upload parameters _ftpUpload.Host = "ftp.test.com" _ftpUpload.User = "user" _ftpUpload.Password = "password" _ftpUpload.PassiveMode = True _ftpUpload.Timeout = 2000 _ftpUpload.Path = "/images/" _ftpUpload.AddFile("scan.jpg", acquiredImage.GetAsStream(New Vintasoft.Twain.ImageEncoders.TwainJpegEncoderSettings())) ' post data to the server _ftpUpload.PostData() Catch ex As Exception _uploadStatus.Text = String.Format("{0}{1}", _uploadStatus.Text, ex) Finally ' set maximal value of the progress bar _progressBar.Maximum = _ftpUpload.BytesTotal End Try End Sub ' Handler of the upload status changed event. Private Sub _ftpUpload_StatusChanged(ByVal sender As System.Object, ByVal e As Vintasoft.Twain.ImageUploading.Ftp.StatusChangedEventArgs) ' show current upload status in the status string _uploadStatus.Text = String.Format("{0}{1}{2}", _uploadStatus.Text, e.StatusString, Environment.NewLine) End Sub ' Handler of the upload progress event. Private Sub _ftpUpload_ProgressChanged(ByVal sender As Object, ByVal e As Vintasoft.Twain.ImageUploading.Ftp.ProgressChangedEventArgs) ' show the size of uploading data (once per upload) If Not _sendingData Then _uploadStatus.Text = String.Format("{0}({1} bytes){2}", _uploadStatus.Text, e.BytesTotal, Environment.NewLine) _sendingData = True End If ' show current upload progress in progress bar _progressBar.Value = e.BytesUploaded ' show current upload progress, in bytes, in the status string _uploadStatus.Text = String.Format("{0}{1} ", _uploadStatus.Text, e.BytesUploaded) End Sub ' Handler of the upload completed event. Private Sub _ftpUpload_Completed(ByVal sender As Object, ByVal e As Vintasoft.Twain.ImageUploading.Ftp.CompletedEventArgs) _uploadStatus.Text = String.Format("{0}{1}", _uploadStatus.Text, Environment.NewLine) If e.ErrorCode = Vintasoft.Twain.ImageUploading.Ftp.ErrorCode.None Then _uploadStatus.Text = String.Format("{0}FTP: Image is uploaded successfully!", _uploadStatus.Text) Else _uploadStatus.Text = String.Format("{0}FTP error: {1}", _uploadStatus.Text, e.ErrorString) End If _uploadStatus.Text = String.Format("{0}", Environment.NewLine) End Sub