zoukankan      html  css  js  c++  java
  • webAPI 上传文件

    服务端代码:

    [HttpPost]
    public APIResult PostFormFile(string path)
    {
        try
        {
            //如果路径不存在,创建路径
            if (!Directory.Exists(path))
                return new APIResult()
                {
                    status = -1,
                    Message = "文件上传失败",
                    Data = "路径不存在"
                };
    
            HttpFileCollection files = HttpContext.Current.Request.Files;
            List<string> errMsg = new List<string>();
            foreach (string key in files.AllKeys)
            {
                string fileName = System.IO.Path.Combine(path, files[key].FileName);
                if (System.IO.File.Exists(fileName))
                    errMsg.Add("文件已存在:" + fileName);
            }
            if (errMsg.Count > 0)
            {
                return new APIResult()
                {
                    status = -1,
                    Message = "文件上传失败,文件已存在",
                    Data = String.Join(System.Environment.NewLine, errMsg)
                };
            }
            foreach (string key in files.AllKeys)
            {
                HttpPostedFile file = files[key];
    
                if (string.IsNullOrEmpty(file.FileName) == false)
                {
                    //int length = file.ContentLength;
                    //if (length > 2097152)
                    //{
                    //    throw new CustomException("上传文件超过2M,请将上传文件大小控制在2M内,谢谢");
                    //}
                    //string extension = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower();
                    //if (extension != ".bmp" && extension != ".jpg" && extension != ".jpeg" && extension != ".png")
                    //{
                    //    throw new CustomException("上传文件扩展名不正确,请上传bmp,jpg,jpeg,png格式的图片");
                    //}
    
                    //name = DateTime.Now.ToStringByDatetime(DateTimeType.yyyyMMddHHmmss) + extension;
                    ////LoginVerifyModels usermodel = GetVerifyModel();
                    //string username = GetVerifyString();
                    //if (!string.IsNullOrEmpty(username))
                    //{
                    //    name = username + extension;
                    //}
                    file.SaveAs(System.IO.Path.Combine(path, file.FileName));
                }
            }
    
            return new APIResult()
            {
                status = 0,
                Message = "文件上传成功"
            };
        }
        catch (Exception ex)
        {
            return new APIResult()
            {
                status = -1,
                Message = "文件上传发生异常",
                Data = ex.Message
            };
        }
    }

    客户端代码:

    private void button1_Click(object sender, EventArgs e)
    {
    
        string fileName = textBox1.Text;
        string url = txt_URL.Text;
    
        WebClient client = new WebClient();
        client.Credentials = CredentialCache.DefaultCredentials;
        client.Headers.Add("Content-Type", "application/form-data");//注意头部必须是form-data
    
        //client.QueryString["path"] = "d:\test";
        client.UploadFileCompleted += (obj, arg) =>
        {
            if (arg.Error == null)
                MessageBox.Show("上传成功");
            else
                MessageBox.Show("上传失败:" + arg.Error.Message);
        };
    
        client.UploadProgressChanged += (obj, arg) =>
        {
            var p = arg.BytesSent * 100.0 / arg.TotalBytesToSend;
            //var rate = Math.Round(p, 2);
            Console.WriteLine("已上传:" + p.ToString("F2") + "%");
        };
        client.UploadFileAsync(new Uri(url), "POST", fileName);
    
    }
    慎于行,敏于思!GGGGGG
  • 相关阅读:
    location url 反向代理到来机的其它端口 gitlab
    PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一
    iptables下state的4种形式
    windows  远程桌面命令 mstsc
    linux中解决SSH连接慢问题 关键点GSSAPIAuthentication
    无密码登录远程主机
    openfire 服务器名称:后面的黄色叹号
    ssh -v root@xxxxx 显示登录的细节
    mysql 只导数据不含表结构
    磁盘空间占满inode结点没用完 并删除了文件但是释放不了
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/14411653.html
Copyright © 2011-2022 走看看