• 删除服务端文件


    今天在winform上需要上传,删除服务器上的文件,网上找了下上传是很多,可删除没有找到答案,,最后只能拿个土办法实现了,这里是用ashx文件来处理
    上传:
    B/S
     
     public void ProcessRequest(HttpContext context)
            {
                foreach (string fileKey in context.Request.Files)
                {
                    try
                    {
                        HttpPostedFile file = context.Request.Files[fileKey];
                        string oldFileName = file.FileName; //原文件名  xxx.jpg
                        int extenIndex = oldFileName.LastIndexOf(".");
                        string getExtent = oldFileName.Substring(extenIndex);//文件扩展名  .jpg
                        string fileSize = UploadCommon.getFileSize(file.ContentLength);  //获取文件大小 
                        string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssms") + (new Random()).Next(0, 9) + getExtent;
                        string path = "/AffixFiles/sw_Products/";
                        if (!Directory.Exists(context.Server.MapPath(path)))
                        {
                            Directory.CreateDirectory(context.Server.MapPath(path));
                        }
                        string filePath = Path.Combine(path, newFileName);//文件相对路径
                        file.SaveAs(context.Server.MapPath(filePath));
                        string json = "{"status":"success","oldFileName":"" + oldFileName + "","fileSize":"" + fileSize + "","filePath":"" + filePath + "","fileType":"" + getExtent + ""}";
                        context.Response.Write(json);
                    }
                    catch
                    {
                        string json = "{"status":"error","oldFileName":"" + null + "","fileSize":"" + null + "","filePath":"" + null + "","fileType":"" + null + ""}";
                        context.Response.Write(json);
                    }
                    context.Response.End();
                }
            }
    C/S
     
    private void 上传_Click(object sender, EventArgs e)
            {
                System.Net.WebClient myWebClient = new System.Net.WebClient();
                byte[] b = myWebClient.UploadFile("http://190.160.10.13:8088/ClientUpload/ClientUploadTools.ashx",
                    "POST", "C:\1351040562_Download.png");
            
               string returnJson = Encoding.Default.GetString(b);
               JavaScriptSerializer json = new JavaScriptSerializer();
               uploadMessage result = json.Deserialize<uploadMessage>(returnJson);//最后的返回结果集
               
            }
            public class uploadMessage
            {
                public string oldFileName { get; set; }
                public string fileSize { get; set; }
                public string filePath { get; set; }
                public string fileType { get; set; }
                public string status { get; set; }
            }
     
     
    删除:
    这里删除就使用了 UploadData方法来处理,太土了,大家有没有更好的办法提供一下哈
    B/S
     
     public void ProcessRequest(HttpContext context)
            {
                try
                {
                    int totalBytes = context.Request.TotalBytes;
                    if (totalBytes > 0)
                    {
                        byte[] readBytes = context.Request.BinaryRead(totalBytes);
                        string filePath = System.Text.Encoding.Default.GetString(readBytes);
                        string overFile = context.Server.MapPath(filePath);
                        if (File.Exists(overFile))
                        {
                            try
                            {
                                File.Delete(overFile);
                                context.Response.Write("success");
                            }
                            catch
                            {
                                context.Response.Write("error");
                            }
                        }
                    }
                }
                catch
                {
                    context.Response.Write("error");
                }
                context.Response.End();
            }
     
    C/S
     
    /// <summary>
            /// 删除成功success  删除失败 error
            /// </summary>
            private void 删除_Click(object sender, EventArgs e)
            {
                System.Net.WebClient myWebClient = new System.Net.WebClient();
                byte[] b = myWebClient.UploadData("http://localhost:2666/ClientUpload/ClientDeleteTool.ashx",
                    "POST", Encoding.Default.GetBytes("/AffixFiles/sw_Products/2012112211243824388.png"));
                string result = Encoding.Default.GetString(b);//返回的结果
            }
     
    好文要顶 关注我 收藏该文 
  • 相关阅读:
    1036 Boys vs Girls (25 分)
    1090 Highest Price in Supply Chain (25 分)
    1106 Lowest Price in Supply Chain (25 分)dfs
    设计模式-解释器模式
    设计模式-命令模式
    设计模式-责任链模式
    设计模式-代理模式
    设计模式-享元模式
    设计模式-外观模式
    设计模式-装饰器模式
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/10989674.html
Copyright © 2020-2023  润新知