winForm读取本地文件并且上传到服务器(非FTP)
2014-05-13 16:31
525 查看
private void button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "打开(Open)"; ofd.FileName = ""; ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录 ofd.Filter = "文本文件(*.txt)|*.txt"; ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名 ofd.CheckFileExists = true; //验证路径有效性 ofd.CheckPathExists = true; //验证文件有效性 try { if (ofd.ShowDialog() == DialogResult.OK) { StreamReader sr = new StreamReader(ofd.FileName, System.Text.Encoding.Default); // string ms = sr.ReadToEnd(); UpLoad u = new UpLoad();//调用方法 u.UpLoadFile(ofd.FileName, "F://", false); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
下面是调用的方法
/// <summary> /// /// </summary> /// <param name="fileNamePath">本地路径</param> /// <param name="uriString">服务器路径</param> /// <param name="IsAutoRename">FALSE</param> public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename) { string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1); string NewFileName = fileName; if (IsAutoRename) { NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf(".")); } string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1); if (uriString.EndsWith("/") == false) uriString = uriString + "/"; uriString = uriString + NewFileName; //log.AddLog(uriString, "Log"); //log.AddLog(fileNamePath, "Log"); /**/ /// 创建WebClient实例 WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials; // 要上传的文件 FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read); //FileStream fs = OpenFile(); BinaryReader r = new BinaryReader(fs); byte[] postArray = r.ReadBytes((int)fs.Length); Stream postStream = myWebClient.OpenWrite(uriString, "PUT"); try { //使用UploadFile方法可以用下面的格式 //myWebClient.UploadFile(uriString,"PUT",fileNamePath); if (postStream.CanWrite) { postStream.Write(postArray, 0, postArray.Length); postStream.Close(); fs.Dispose(); } else { postStream.Close(); fs.Dispose(); } } catch (Exception err) { postStream.Close(); fs.Dispose(); //Utility.LogWriter log = new Utility.LogWriter(); throw err; } finally { postStream.Close(); fs.Dispose(); } }
相关文章推荐
- 从FTP服务器读取文件到本地
- Java连接FTP服务器并且实现对其文件的上传和下载
- ftp上传文件,本地安装了,服务器上也需要在也安装一个ftp
- Java连接FTP服务器并且实现对其文件的上传和下载
- win7搭建ftp服务器并且自定压缩文件上传
- Java连接FTP服务器并且实现对其文件的上传和下载
- 上传excel文件存到服务器并且读取sheet
- SpringMvc 文件上传并且实现与ftp服务器的对接
- C# Winform 上传本地文件到服务器路径
- 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word
- C# Winform 上传本地文件到服务器路径
- Java连接FTP服务器并且实现对其文件的上传和下载
- 本地FTP 上传文件至服务器
- Java连接FTP服务器并且实现对其文件的上传和下载
- 以Base64字符串形式上传文件——在web浏览器端使用原生Javascript及Ajax读取本地文件并发送请求到服务器
- 上传文件到服务器,从服务器下载文件到本地
- VB实现文件上传到FTP服务器
- js 读取本地图片进行预览,上传服务器
- ruby使用restclient上传服务器本地文件示例