예제 #1
0
        public FtpResult <Xamarin.Forms.ImageSource> DownloadImage(string fileName)
        {
            FtpResult <Xamarin.Forms.ImageSource> result = new FtpResult <Xamarin.Forms.ImageSource>();

            result.Status = "Processing";
            result.Debug  = 0;
            result.Error  = "";
            result.Data   = null;

            try
            {
                string ftpfullpath = "http://newartsolutions-uqqsvjr7dj8cngkz9pnz.netdna-ssl.com/assets/" + fileName;

                WebClient wc = new WebClient();

                Stream s    = new MemoryStream();
                byte[] data = wc.DownloadData(ftpfullpath);
                s.Write(data, 0, data.Length);
                result.Data = Xamarin.Forms.ImageSource.FromStream(() => { return(s); });

                result.Debug = 99;

                result.Status = "OK";
            }
            catch (Exception ex)
            {
                ex.ToString();

                result.Status = "ERROR";
                result.Error  = ex.Message;
            }

            return(result);
        }
예제 #2
0
 private void ConnectResult(FtpResult result)
 {
     //if(!result.IsSuccess){
     //    MsgBox.Alert(result.Msg);
     //}
     //执行连接事件
     if (OnConnection != null)
     {
         OnConnection(this, result);
     }
     else
     {
         MsgBox.Alert(result.Msg);
     }
 }
예제 #3
0
        public async Task <FtpResult> UploadFiles(string filePath, string saveAsName)
        {
            var results = new FtpResult {
                IsSuccessful = false
            };

            var imageServer = await _imageServerRepository.GetActiveImageServer();

            if (imageServer == null)
            {
                return(results);
            }

            // create an FTP client
            var ftpClient = new FtpClient(imageServer.ServerFtp);

            // if you don't specify login credentials, we use the "anonymous" user account
            ftpClient.Credentials = new NetworkCredential(imageServer.UserName, imageServer.Password);

            // begin connecting to the server
            ftpClient.Connect();

            var fileExtension = new FileInfo(filePath).Extension;

            try
            {
                ftpClient.UploadFile(filePath, "/" + imageServer.Patch + saveAsName + fileExtension, FtpExists.Overwrite, true);
            }
            catch (Exception ex)
            {
                var er = ex.Message;
            }

            results.IsSuccessful = true;
            results.FileName     = saveAsName + fileExtension;
            results.FullPath     = $"{imageServer.ServerUrl}/{imageServer.Patch}{saveAsName}{fileExtension}";
            if (imageServer.Id != null)
            {
                results.ServerId = imageServer.Id.Value;
            }

            ftpClient.Disconnect();

            return(results);
        }
예제 #4
0
 private void btnConnection_Click(object sender, EventArgs e)
 {
     if (validFTP.IsValid())
     {
         this.btnConnection.Text = "连接中...";
         Application.DoEvents();
         FtpResult result = new FtpResult();
         try
         {
             FtpClient client = new FtpClient(
                 txtAddress.Text.Trim(),
                 txtUid.Text.Trim(),
                 txtPwd.Text.Trim()
                 );
             if (!string.IsNullOrEmpty(txtPort.Text))
             {
                 client.port = Convert.ToInt32(txtPort.Text.Trim());
             }
             result.IsSuccess = client.Connect();
             if (!result.IsSuccess)
             {
                 result.Msg = string.IsNullOrEmpty(client.errormessage) ? "连接失败" : client.errormessage;
             }
             else
             {
                 result.Msg = "连接成功";
             }
         }
         catch (Exception ex) {
             result.IsSuccess = false;
             result.Msg       = "连接失败,错误信息:" + ex.Message;
         }
         this.btnConnection.Text = "连接";
         ConnectResult(result);
     }
 }
예제 #5
0
        public FtpResult <object> UploadFile(Stream image, int documentId)
        {
            FtpResult <object> result = new FtpResult <object>();

            result.Status = "Processing";
            result.Debug  = 0;
            result.Error  = "";

            try
            {
                string ftpUser     = "******";
                string ftpPassword = "******";
                string ftpfullpath = "ftp://ftp.newartzone.uqqsvjr7dj8cngkz9pnz.netdna-cdn.com/documents/" + documentId.ToString() + ".png";

                FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);

                result.Debug = 1;

                ftp.Credentials = new NetworkCredential(ftpUser, ftpPassword);

                result.Debug = 2;

                ftp.KeepAlive = true;
                ftp.UseBinary = true;
                ftp.Method    = WebRequestMethods.Ftp.UploadFile;

                result.Debug = 3;

                byte[] buffer = new byte[image.Length];
                image.Read(buffer, 0, buffer.Length);

                result.Debug = 4;

                image.Close();

                result.Debug = 5;

                Stream ftpstream = ftp.GetRequestStream();

                result.Debug = 6;

                ftpstream.Write(buffer, 0, buffer.Length);

                result.Debug = 7;

                ftpstream.Close();

                result.Debug = 8;

                ftpstream.Flush();

                result.Debug = 99;

                result.Status = "OK";
            }
            catch (Exception ex)
            {
                ex.ToString();

                result.Status = "ERROR";
                result.Error  = ex.Message;
            }

            return(result);
        }