c#做一个http服务端实现远程文件上传下载功能

c#做一个http服务端实现远程文件上传下载功能

问题描述:

服务端实现对远程共享文件夹下文件的上传下载删除等功能,怎么写合理一点啊,我现在只监听了一个url(10.0.15.105:8080),然后根据客户端传值类型判断是上传还是下载,但显然不对????,怎么把每个功能单独写一个接口啊,没写过服务端,懵逼

搭建好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>


你是要做什么?自己用socket实现一个http服务器?.net core了解一下