服务端实现对远程共享文件夹下文件的上传下载删除等功能,怎么写合理一点啊,我现在只监听了一个url(10.0.15.105:8080),然后根据客户端传值类型判断是上传还是下载,但显然不对😂,怎么把每个功能单独写一个接口啊,没写过服务端,懵逼
2条回答 默认 最新
- CSDN专家-showbo 2021-10-08 06:34关注
搭建好web服务器,用System.IO下的类读,写,删除文件。接口可以一个,也可以分开,上传归上传,下载归下载的。
同一个接口可以传递不同的参数来判断进行什么操作。下面为一个简单示例,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
<%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <script runat="server"> string fileHtml=""; protected void Page_Load(Object sender, EventArgs e) { var savePath = Server.MapPath("/upload/");//文件保存路径,网站根目录upload文件夹下 var op = Request.QueryString["op"]; if (op == "upload") { //上传操作 var file = Request.Files["file"]; if (file != null) { var ext = Path.GetExtension(file.FileName).Substring(1).ToLower(); if (new[] { "jpg", "jpeg", "gif", "png" }.Contains(ext)) { var fn = Path.GetFileName(file.FileName); int i = 1; while (File.Exists(savePath + fn)) { fn = fn.Replace((i == 1 ? "" : i.ToString()) + ".", "-" + i + "."); i++; } file.SaveAs(savePath + fn); Response.Write("文件保存成功"); } } } else if (op == "download") {//下载操作 var fn = Request.QueryString["fn"]; if (!string.IsNullOrEmpty(fn) && File.Exists(savePath + fn)) { Response.AddHeader("content-disposition", "attachment;filename=\"" + fn + "\""); Response.TransmitFile(savePath + fn); Response.End(); } } //读取文件夹文件显示操作 fileHtml = String.Join("", Directory.GetFiles(savePath).Select(i => "<div><a href='?op=download&fn=" + Server.UrlDecode(Path.GetFileName(i)) + "'>"+Path.GetFileName(i)+"</a></div>")); this.DataBind(); } </script> <script> function check(f) { if (!/(jpe?g|png|gif)$/.test(f.file.value)) { alert('只允许上传图片文件!'); return false;} } </script> <form method="post" action="?op=upload" enctype="multipart/form-data" onsubmit="return check(this)"> 选择文件:<input type="file" name="file" accept="image/*" /><input type="submit" value="上传文件" /> </form> <div>点击下载文件 <%#fileHtml %> </div>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报upload.aspx
<%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <script runat="server"> protected void Page_Load(Object sender, EventArgs e) { var savePath = Server.MapPath("/upload/");//文件保存路径,网站根目录upload文件夹下 var file = Request.Files["file"]; if (file != null) { var ext = Path.GetExtension(file.FileName).Substring(1).ToLower(); if (new[] { "jpg", "jpeg", "gif", "png" }.Contains(ext)) { var fn = Path.GetFileName(file.FileName); int i = 1; while (File.Exists(savePath + fn)) { fn = fn.Replace((i == 1 ? "" : i.ToString()) + ".", "-" + i + "."); i++; } file.SaveAs(savePath + fn); Response.Write("文件保存成功"); } else Response.Write("只能上传jpg,jpeg,gif,png文件"); } else Response.Write("文件不能为空!"); } </script>
赞回复展开全部11条评论