zoukankan      html  css  js  c++  java
  • winfrom中上传文件保存在webFrom里面

    winfrom里面的代码

       private void button1_Click(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(textBox1.Text.Trim()))
                {
                    string a = MyUploader(this.textBox1.Text.Trim(), @"http://localhost:63715/Default.aspx");  //这里的路径就是网页路径
                    MessageBox.Show(a);
                }
                else
                {
                    MessageBox.Show("请选择需要上传的文件");
                }
               
            }
    
            /// <summary>
            /// 文件上传
            /// </summary>
            /// <param name="strFileToUpload">文件名</param>
            /// <param name="strUrl">目标路径</param>
            /// <returns>是否成功</returns>
            public static string MyUploader(string strFileToUpload, string strUrl)
            {
                string strFileFormName = "file";
                Uri oUri = new Uri(strUrl);  //创建一个url请求
                //分隔符
                string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x");
                //转成ascii码
                byte[] boundaryBytes = Encoding.ASCII.GetBytes("
    --" + strBoundary + "
    ");
                //使用multipart/form-data请求体格式为(包含文件内容)
                //Content-Disposition: form-data; name="fileparam"; filename="test.txt"
               //Content-Type: text/plain
    
                StringBuilder sb = new StringBuilder();
                sb.Append("--");
                sb.Append(strBoundary);
                sb.Append("
    ");
                sb.Append("Content-Disposition: form-data; name="");
                sb.Append(strFileFormName);
                sb.Append(""; filename="");
                sb.Append(Path.GetFileName(strFileToUpload));  //文件名
                sb.Append(""");
                sb.Append("
    ");
                sb.Append("Content-Type: ");
                sb.Append("application/octet-stream");
                sb.Append("
    ");
                sb.Append("
    ");
                string strPostHeader = sb.ToString();
                //字符串转成字节
                byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader);
                //post提交  
                HttpWebRequest oWebrequest = (HttpWebRequest)WebRequest.Create(oUri);//指定url
                oWebrequest.ContentType = "multipart/form-data; boundary=" + strBoundary; //固定格式
                oWebrequest.Method = "POST";
                oWebrequest.AllowWriteStreamBuffering = false;
    
                FileStream oFileStream = new FileStream(strFileToUpload, FileMode.Open, FileAccess.Read);
                long length = postHeaderBytes.Length + oFileStream.Length + boundaryBytes.Length;
                oWebrequest.ContentLength = length;//确定传的长度
                Stream oRequestStream = oWebrequest.GetRequestStream();//转成流
                oRequestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
    
                //checked((uint)Math.Min)
                //文件流的长度
                byte[] buffer = new Byte[checked((uint)Math.Min(4096, (int)oFileStream.Length))];
                int bytesRead = 0;
                while ((bytesRead = oFileStream.Read(buffer, 0, buffer.Length)) != 0)
                    oRequestStream.Write(buffer, 0, bytesRead);
                oFileStream.Close();
    
                oRequestStream.Write(boundaryBytes, 0, boundaryBytes.Length);
                WebResponse oWResponse = oWebrequest.GetResponse();
                Stream s = oWResponse.GetResponseStream(); //从webfrom中返回的数据
                StreamReader sr = new StreamReader(s);
                String sReturnString = sr.ReadToEnd();
                Console.WriteLine(sReturnString);
                //用完关闭
                oFileStream.Close();
                oRequestStream.Close();
                s.Close();
                sr.Close();
                return sReturnString;
            }

     webFrom里面的代码

     protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Files.Count > 0)
            {
                try
                {
                    HttpPostedFile file = Request.Files[0];  //获取传的文件
                    string filePath = this.MapPath("FileUpload") + "\" + file.FileName;
                    file.SaveAs(filePath);
                    Response.Write("成功了");
                }
                catch (Exception)
                {
                    Response.Write("失败了1");
                }
            }
            else
            {
                Response.Write("失败了2");
            }
    
            Response.End();  
        }
  • 相关阅读:
    xshell不能输入中文,显示为??
    ansible-2.1.0.0_module
    ansible
    解决ssh连接问题2
    Java Socket网络编程Server端详解
    Java Socket网络编程Client端详解
    Spring4.* 中整合 Hibernate
    自定义规则,对List<Map<String,Object>> List<Object>进行排序
    自定义注解和注解的相关使用
    枚举类型的相关解析
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/6486301.html
Copyright © 2011-2022 走看看