Exemplo n.º 1
0
        /// <summary>
        /// 把xml字符串保存到本地文件夹,并上传到院方平台ftp
        /// </summary>
        /// <param name="xml">xml字符串</param>
        /// <param name="fileId">结果数据主表ID</param>
        public void UploadRecordXml(string xml, string fileId)
        {
            var fileName = fileId + ".xml";

            var serverDir          = $"{DateTime.Now.ToString("yyyy")}\\{DateTime.Now.ToString("MM")}\\{DateTime.Now.ToString("dd")}\\{fileId}";
            var localdir           = $"XmlReport\\" + serverDir;
            var localFileFullName  = localdir + "\\" + fileName;
            var serverFileFullName = serverDir + "\\" + fileName;

            //新建本地文件夹
            if (Directory.Exists(localdir) == false)
            {
                Directory.CreateDirectory(localdir);
            }

            //新建ftp文件夹
            string err = "";

            FtpMakedir(serverDir, out err);
            if (err != "OK")
            {
                log.WriteMyLog($"在平台ftp新建文件夹失败,serverDir={serverDir}:" + err);
                throw new Exception($"在平台ftp新建文件夹失败,serverDir={serverDir}:" + err);
            }

            //xml保存在本地一份
            StreamWriter writer = new StreamWriter(localFileFullName);

            writer.Write(xml);
            writer.Close();

            //上传到平台ftp
            err = "";
            ftpUp.Upload(localFileFullName, serverDir, out err);
            if (err != "OK")
            {
                log.WriteMyLog($"xml上传平台ftp失败,serverFileName={serverFileFullName}:" + err);
                throw new Exception($"xml上传平台ftp失败,serverFileName={serverFileFullName}:" + err);
            }
        }
Exemplo n.º 2
0
        private static bool Upload(string localDir, string remoteDir)
        {
            var ftp = new FtpWeb(
                DbFactory.FTPSetting.Server,
                DbFactory.FTPSetting.Port,
                DbFactory.FTPSetting.UserID,
                DbFactory.FTPSetting.Password);

            var sdir      = remoteDir.ExtendSplit("/");
            var changeDir = "";

            for (int i = 0; i < sdir.Length; i++)
            {
                if (sdir[i] == "")
                {
                    continue;
                }
                if (!ftp.DirectoryExist(changeDir, sdir[i]))
                {
                    ftp.CreateDirectory(string.Format("{0}{1}/", changeDir, sdir[i]));
                }
                changeDir = string.Format("{0}{1}/", changeDir, sdir[i]);
            }

            var di = new DirectoryInfo(localDir);

            if (!di.Exists)
            {
                return(false);
            }

            foreach (FileInfo fi in di.GetFiles())
            {
                if (!ftp.Upload(remoteDir + fi.Name, fi.FullName))
                {
                    return(false);
                }
            }

            return(true);
        }
        private void Btn_UploadFile_Click(object sender, EventArgs e)
        {
            try
            {
                string FtpServer   = ConfigInfo.FtpSite;
                string FtpUser     = ConfigInfo.FtpUid;
                string FtpPassword = ConfigInfo.FtpPwd;
                FtpWeb ftp         = new FtpWeb(FtpServer, ConfigInfo.FtpSiteDicPath.Trim('/'), FtpUser, FtpPassword);
                var    FileList    = lst_filelist.Items.Count;
                if (FileList == 0)
                {
                    MessageBox.Show("请选择需要上传的工艺图纸!", "提示");
                    return;
                }
                if (string.IsNullOrEmpty(lblFigureNumber.Text))
                {
                    MessageBox.Show("图号为空!", "提示");
                    return;
                }

                new Thread(new ThreadStart(delegate
                {
                    long TotalBytes = 0; var list = new List <string>();
                    foreach (string item in lst_filelist.Items)
                    {
                        FileInfo fileInfo = new FileInfo(item);
                        TotalBytes       += fileInfo.Length;
                        list.Add(item);
                    }
                    prs_bar.Value  = 0;
                    FtpWeb.file_jd = 0;

                    string url    = string.Format(@"http://{0}/api/Mms/MES_BN_ProductProcessRoute/GetUpdateProcessFigureIsEnableByProcessBomID?processBomID=" + parModel.BomID, ConfigInfo.API);
                    string result = Helpers.HttpHelper.GetJSON(url);

                    foreach (string item in list)
                    {
                        string ftp_url = "", file_name = "";
                        string num     = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        ftp.Upload(num, prs_bar, TotalBytes, item, out ftp_url, out file_name);
                        string url1    = string.Format(@"http://{0}/api/Mms/Home/PostUpdate3", ConfigInfo.API);
                        string result1 = Helpers.HttpHelper.PostJSON(url1, new { id = parModel.BomID, docName = file_name, fileName = num, filePath = ftp_url });
                        this.lst_filelist.Items.Remove(item);

                        if (FtpWeb.file_jd == TotalBytes)
                        {
                            StorageInfo.hubProxy.Invoke("finishUpload", JsonConvert.SerializeObject(new
                            {
                                UserCode   = parModel.UserCode,
                                UploadType = 1,
                                Result     = true,
                                Data       = new
                                {
                                },
                                Msg = @"图纸已上传完成!"
                            }));

                            lblFigureNumber.Text = string.Empty;

                            DialogResult = DialogResult.OK;
                        }
                    }
                }))
                {
                    IsBackground = true
                }.Start();
            }
            catch (Exception ex)
            {
                DialogResult = DialogResult.No;
            }
        }
        private void Btn_UploadFile_Click(object sender, EventArgs e)
        {
            ILog log = LogManager.GetLogger("ErrorName");

            try
            {
                string FtpServer   = ConfigInfo.FtpSite;
                string FtpUser     = ConfigInfo.FtpUid;
                string FtpPassword = ConfigInfo.FtpPwd;
                FtpWeb ftp         = new FtpWeb(FtpServer, "PRS_ProcessFigure", FtpUser, FtpPassword);
                var    FileList    = lst_filelist.Items.Count;
                if (FileList == 0)
                {
                    MessageBox.Show("请选择需要上传的工艺图纸!", "提示");
                    return;
                }
                if (lblFigureNumber.Text == "图号:")
                {
                    MessageBox.Show("图号为空!", "提示");
                    return;
                }

                new Thread(new ThreadStart(delegate
                {
                    long TotalBytes = 0; var list = new List <string>();
                    foreach (string item in lst_filelist.Items)
                    {
                        FileInfo fileInfo = new FileInfo(item);
                        TotalBytes       += fileInfo.Length;
                        list.Add(item);
                    }
                    prs_bar.Value  = 0;
                    FtpWeb.file_jd = 0;

                    int id = ID;
                    log.Info("web端传入的PRS_ProcessBom的ID:" + id.ToString());
                    string url = string.Format(@"http://{0}/api/Mms/MES_BN_ProductProcessRoute/GetUpdateProcessFigureIsEnableByProcessBomID?processBomID=" + id, ConfigInfo.API);
                    log.Info("web端改变IsEnable的webapi地址:" + url);
                    string result = Helpers.HttpHelper.GetJSON(url);

                    foreach (string item in list)
                    {
                        string ftp_url = "", file_name = "";
                        string num     = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        ftp.Upload(num, prs_bar, TotalBytes, item, out ftp_url, out file_name);
                        string url1 = string.Format(@"http://{0}/api/Mms/Home/PostUpdate3", ConfigInfo.API);
                        log.Info("web端插入上传数据的webapi地址:" + url1);
                        string result1 = Helpers.HttpHelper.PostJSON(url1, new { id = id, docName = file_name, fileName = num, filePath = ftp_url });
                        log.Info("web端插入上传数据的webapi返回内容:" + result1);
                        this.lst_filelist.Items.Remove(item);

                        if (FtpWeb.file_jd == TotalBytes)
                        {
                            hubProxy.Invoke("finishUpload", UserCode).Wait();
                            lblFigureNumber.Text = "图号:";
                            MessageBoxShow(this, "图纸已上传完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                    }
                }))
                {
                    IsBackground = true
                }.Start();
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 病理图片上传到外部系统ftp,并获取病理图片xml字符串
        /// </summary>
        /// <param name="jcxx">检查信息表</param>
        /// <returns></returns>
        public string GetImageFile(T_JCXX jcxx)
        {
            var sqlWhere = $" F_BLH='{jcxx.F_BLH}' and F_SFDY='1' ";
            var txList   = new T_TX_DAL().GetList(sqlWhere);

            string imageFileString = "";

            #region ftp变量声明

            IniFiles f             = new IniFiles("sz.ini");
            string   ftpserver     = f.ReadString("ftp", "ftpip", "").Replace("\0", "");
            string   ftpuser       = f.ReadString("ftp", "user", "ftpuser").Replace("\0", "");
            string   ftppwd        = f.ReadString("ftp", "pwd", "ftp").Replace("\0", "");
            string   ftplocal      = f.ReadString("ftp", "ftplocal", "c:\\temp").Replace("\0", "");
            string   ftpremotepath = f.ReadString("ftp", "ftpremotepath", "pathimages").Replace("\0", "");
            string   ftps          = f.ReadString("ftp", "ftp", "").Replace("\0", "");
            string   txpath        = f.ReadString("txpath", "txpath", "").Replace("\0", "");
            FtpWeb   fw            = new FtpWeb(ftpserver, ftpremotepath, ftpuser, ftppwd);

            string ftpserver2     = f.ReadString("ftpup", "ftpip", "").Replace("\0", "");
            string ftpuser2       = f.ReadString("ftpup", "user", "ftpuser").Replace("\0", "");
            string ftppwd2        = f.ReadString("ftpup", "pwd", "ftp").Replace("\0", "");
            string ftplocal2      = f.ReadString("ftpup", "ftplocal", "c:\\temp").Replace("\0", "");
            string ftpremotepath2 = f.ReadString("ftpup", "ftpremotepath", "").Replace("\0", "");
            string ftps2          = f.ReadString("ftp", "ftp", "").Replace("\0", "");
            FtpWeb fwup           = new FtpWeb(ftpserver2, ftpremotepath2, ftpuser2, ftppwd2);

            string ftpPath  = $@"ftp:\\{ftpserver}\";  //这里要替换为本地配置文件的ftp路径
            string ftpPath2 = $@"ftp:\\{ftpserver2}\"; //这里要替换为本地配置文件的ftp路径

            #endregion

            for (int i = 0; i < txList.Count; i++)
            {
                var upFilePath = jcxx.F_TXML + "\\";
                var upFileName = upFilePath + txList[i].F_TXM.Trim();

                //下载图片
                string ftpstatus = "";
                if (!Directory.Exists(ftplocal + "\\" + upFilePath))
                {
                    Directory.CreateDirectory(ftplocal + "\\" + upFilePath);
                }
                try
                {
                    fw.Download(ftplocal + "\\" + upFilePath, upFileName, txList[i].F_TXM.Trim(), out ftpstatus);
                    if (ftpstatus == "Error")
                    {
                        throw new Exception("Error");
                    }
                }
                catch (Exception e)
                {
                    log.WriteMyLog("下载ftp图片失败,病理号:" + jcxx.F_BLH +
                                   "\r\n失败原因:" + e.Message);
                    continue;
                }


                //上传到目标ftp
                string ftpstatusUP = "";
                try
                {
                    fwup.Makedir("BL", out ftpstatusUP);
                    fwup.Makedir("BL\\" + upFilePath, out ftpstatusUP);
                    fwup.Upload(ftplocal + "\\" + upFileName, "BL\\" + upFilePath, out ftpstatusUP);
                    if (ftpstatusUP == "Error")
                    {
                        throw new Exception("Error");
                    }
                }
                catch (Exception e)
                {
                    log.WriteMyLog("上传ftp图片失败,病理号:" + jcxx.F_BLH +
                                   "\r\n失败原因:" + e.Message);
                    continue;
                }

                imageFileString +=
                    $@"<Path{i + 1}> {ftpPath2 + "BL\\" + upFileName} | 1 </Path{i + 1}>                                    ";
            }

            return(imageFileString);
        }