zoukankan      html  css  js  c++  java
  • C# winform上传,删除服务器文件

    今天在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);//返回的结果
            }
  • 相关阅读:
    第一期站立会议7(11.21 个人)
    第一期站立会议6(11.20 个人)
    第一期站立会议5(11.19个人)
    第一期站立会议4(11.18个人)
    第一期站立会议3(11.17个人)
    第一期站立会议2(11.16个人)
    第一期站立会议1(11.15 个人)
    第二阶段第三次站立会议
    对第一阶段提出意见的总结及改进方案
    第二阶段第二次站立会议
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/2782947.html
Copyright © 2011-2022 走看看