C# C/S WPF 远程操作服务器上面的文件
作的时候用的是WPF,需要做一个上传附件的功能,服务器上有一个文件夹,附件都上传到里面,只知道URL路径.
文件夹是在服务器上的IIS里面(就比如说你发布一个网站,把文件夹建在网站下面,当然这个网站啥都没有,你需要的是这个文件夹在这个网站下面的路径,既url路径)
打开窗口选择文件:
if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
foreach (string f in open.FileNames)
{
list.Add(new FileInfo(f));
}
}
把路径加到list里面
上传附件:
这块需要注意如果你的文件非常大的话就需要把流分开上传了
try
{
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("zhangsan", "123456");
FileStream fs = new FileStream(oldPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] result = br.ReadBytes(Convert.ToInt32(fs.Length));
Stream s = wc.OpenWrite(new Uri(path), "PUT");
if (s.CanWrite)
{
s.Write(result, 0, result.Length);
}
s.Flush();
s.Close();
fs.Close();
}
catch (Exception)
{
return false;
}
这个oldPath是你在本地选中的文件的路径,path是你要上传到服务器上的路径,包括你上传的文件的名字,比如http://202.202.1.299:80/Up/aaa.jpg
zhangsan是你在服务器上的一个账号的名称,123465是密码,你需要给这个账号读写的权限,并且需要给WebDAV创建一个规则,如图
而且记得把你存放上传文件的文件夹的读写权限给你的这个账号,如图
判断文件夹是否存在
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(filename);
request.Credentials = new NetworkCredential("zhangsan", "123456");
request.Method = "PROPFIND";
request.Headers.Add("Depth", "0");
request.Headers.Add("Translate: f");
WebResponse response = null;
try
{
response = request.GetResponse();
}
catch (WebException exception)
{
if (exception.Message.IndexOf("404") != -1)
{
return false;
}
throw exception;
}
finally
{
if (response != null)
{
response.Close();
}
}
如果没有,那就创建文件夹
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(foldername);
request.Credentials = new NetworkCredential("zhangsan", "123456");
request.Method = "MKCOL";
WebResponse response = null;
try
{
response = request.GetResponse();
}
catch (WebException exception)
{
return false;
}
finally
{
if (response != null)
{
response.Close();
}
}
上传就没了,做完了.
转载于:https://www.cnblogs.com/lijin/p/3415462.html
C# C/S WPF 远程操作服务器上面的文件相关推荐
- 如何用 VS Code remote 插件编辑远程 linux 服务器上的文件
VS Code 是目前最优秀的文本编辑器之一,使用它可以方便地编辑我们 Windows 或者 Mac 机器上的文件.要编辑我们在云上的 linux 服务器的文件,通常我们要么使用 VI,nano 这样 ...
- 编辑服务器上的文件,Sublime Text编辑远程Linux服务器上的文件
sublime有个叫sftp的插件,可以通过它直接打开远程机器上的文件进行编辑,并在保存后直接同步到远程linux服务器上. 用Package Control安装插件 按下Ctrl+Shift+P调出 ...
- 远程往服务器上传送文件,远程连接服务器怎么传送文件
远程连接服务器怎么传送文件 内容精选 换一换 代码迁移工具进行代码迁移时,需要调用Linux下的rpm.deb等命令才能完成扫描和迁移相关任务,这些命令和逻辑必须在后端Linux运行.插件只支持以We ...
- java循环读取ftp服务器上面的文件
公司新项目需要在ftp服务器上读取文件保存到数据库,所以学习了一下怎么读取 项目采用的是springboot框架,首先需要在pom文件中加入comment.net jar包依赖 <!-- 读取f ...
- 远程往服务器上传送文件,服务器远程传送文件
服务器远程传送文件 内容精选 换一换 使用MSTSC方式登录Windows云服务器,可以正常播放音频文件.但是,使用VNC方式登录Windows云服务器时,播放音频文件没有声音.VNC方式不具备音频调 ...
- winserver下oracle好运维吗,在Windows 客户端下备份远程Linux服务器上的Oracle数据库...
1.在Windows上安装Oracle客户端软件(比如:win32_11gR1_client版本最好跟服务器Oracle版本相同) 系统运维 www.osyunwei.com 温馨提醒:qihan ...
- java解压服务器文件夹,java获取远程服务器上的文件夹
java获取远程服务器上的文件夹 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例, ...
- 向服务器上传文件的命令,上传文件到远程服务器的命令
上传文件到远程服务器的命令 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...
- 在服务器上导出dmp文件,远程在服务器上导出dmp文件
远程在服务器上导出dmp文件 内容精选 换一换 由于非工作时间或出差等原因,运维人员无法通过告警管理界面查看告警/事件,但又想实时了解告警/事件的产生或清除情况时,可以配置远程通知规则,将关注的告警/ ...
最新文章
- 运行PHP出现No input file specified错误解决办法
- 从零开始学习PYTHON3讲义(一)认识Python
- 多线程在任何情况下均能提高效率吗?
- python 入门第六课 class面向对象OOP
- python局部变量想作用于全局_python 局部和全局作用域
- Spark配置属性整理(非常全面)
- VTK:Utilities之Box
- hibernate 的三种状态 如何转化的。
- c语言右上左下遍历数组,如何将一个数组的元素循环左移?
- 如何注册和删除系统服务文件
- Confluence 6 为站点禁用匿名用户访问
- android学习资料_知乎上的高能Android学习资源来了,屏幕适配,性能优化,热修复NDk...
- paip.编程语言到底有没有优劣之分优秀之分
- 【使用指南】ComponentOne Enterprise .NET开发控件集
- 迅雷插件会导致IE8假死
- salt returner mysql_saltstack实战2--远程执行之返回(returner)
- 各种数据类型的取值范围
- 一起用Python做个上课点名器,好玩又实用!
- RK3288方案开发,RK3288开发板方案,RK3288平板芯片参数资料
- Js的Generator函数(一)