• WinForm上传文件至服务器


            /// <summary>
            /// WebClient上传文件至服务器
            /// </summary>
            /// <param name="localFilePath">文件名,全路径格式</param>
            /// <param name="serverFolder">服务器文件夹路径</param>
            /// <returns></returns>
            public bool Upload(string localFilePath, out string folderName,string newFileName)
            {
                //先创建文件夹
                folderName = "";
                try
                {
                    Guid guid = Guid.NewGuid();
                    folderName = guid.ToString();

                    string diskPath = DAL.DataBaseOperator.GetValueFromApplictionConfig("diskPath");
                    if (!diskPath.EndsWith("/") && !diskPath.EndsWith(@"\"))
                    {
                        diskPath = diskPath + "/";
                    }
                    diskPath += folderName;
                    if (!Directory.Exists(diskPath))
                    {

            //服务器创建文件夹
                        Directory.CreateDirectory(diskPath);
                    }
                    //再上传数据
                    string serverFolder = DAL.DataBaseOperator.GetValueFromApplictionConfig("uploadPath");
                    if (!serverFolder.EndsWith("/") && !serverFolder.EndsWith(@"\"))
                    {
                        serverFolder = serverFolder + "/";
                    }
                    string uriString = serverFolder + folderName + "/" + newFileName;

                    /// 创建WebClient实例
                    WebClient myWebClient = new WebClient();
                    myWebClient.Credentials = CredentialCache.DefaultCredentials;

                    // 要上传的文件
                    FileStream fs = new FileStream(newFileName, FileMode.Open, FileAccess.Read);
                    //判断文件大小
                    string strFileSize = DAL.DataBaseOperator.GetValueFromApplictionConfig("fileSize");
                    int fileSize = Convert.ToInt32(strFileSize) * 1024 * 1024;
                    if (fs.Length > fileSize)
                    {
                        MessageBox.Show("您上传的附件不能超过 " + strFileSize + "M");
                        return false;
                    }
                    BinaryReader r = new BinaryReader(fs);
              
                    //使用UploadFile方法可以用下面的格式
                    myWebClient.UploadFile(uriString,"PUT",localFilePath);
                    byte[] postArray = r.ReadBytes((int)fs.Length);
                    Stream postStream = myWebClient.OpenWrite(uriString, "PUT");
                   
                    if (postStream.CanWrite)
                    {
                        postStream.Write(postArray, 0, postArray.Length);
                    }
                    else
                    {
                        MessageBox.Show("文件目前不可写!");
                    }
                    Application.DoEvents();
                    postStream.Close();
                }
                catch(Exception err)
                {
                    //MessageBox.Show("文件上传失败,请稍候重试~");
                    DAL.Log.FileLogSys.FileLog.WriteLog(err.Message + err.StackTrace);
                    return false;
                }

                return true;

            }

  • 相关阅读:
    JDK的安装及环境变量部署
    计算机常用运行指令
    Linux基础2
    Linux基础1
    Oracle数据库基础(2)
    Oracle数据库的基础(1)
    测试用例的设计
    软件测试基础
    转化课-环境变量
    转化课-计算机基础及上网过程
  • 原文地址:https://www.cnblogs.com/threestone/p/1714788.html
Copyright © 2020-2023  润新知