zoukankan      html  css  js  c++  java
  • C# WinForm 上传文件到服务器

    这几天折腾了下 C# 上传文件到 web 服务器的事情,看了好多地方使用 WebResponse /HttpWebResponse 来模拟form的post请求。实际上并没有那么复杂。。

    首先,我们得准备php的代码,用来接收文件和存文件哇~我这里就简单的拿 w3school的例子。。

    php 上传页面:

    <html>
    <body>
    
    <form action="upload_file.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" /> 
    <br />
    <input type="submit" name="submit" value="Submit" />
    </form>
    
    </body>
    </html>

    php上传接收页面:

    <?php
    if ($_FILES["file"]["error"] > 0)
      {
      echo "Error: " . $_FILES["file"]["error"] . "<br />";
      }
    else
      {
      echo "Upload: " . $_FILES["file"]["name"] . "<br />";
      echo "Type: " . $_FILES["file"]["type"] . "<br />";
      echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
      echo "Stored in: " . $_FILES["file"]["tmp_name"];
      
      if (file_exists("upload/" . $_FILES["file"]["name"]))
          {
          echo $_FILES["file"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "upload/" . $_FILES["file"]["name"]);
          echo "Stored in: " . "upload/" . $_FILES["file"]["name"] ;
          }
        
      }
    ?>

      OK~

    php自身测试下,肯定么的问题哇~

    测试完成后,我们就开始使用C# 上次数据了。。

    其实很简单。。使用的是 WebClient 代码如下:

    //发送文件
            public static  string SendFile(string fileName, Uri uri,string encodingType = "UTF-8")
            {
    
                WebClient myWebClient = new WebClient();
                byte[] responseArray = myWebClient.UploadFile(uri, "POST", fileName);
    
                return Encoding.GetEncoding(encodingType).GetString(responseArray);
            }

      当然,我们这里的 Uri 需要填写为post的uri ,也就是上文中的 php 接收页面。

    调用 :  

    SendFile(@"D:\h.txt", new uri("http://localhost/upload_file.php");

     

     

  • 相关阅读:
    python 基于gevent协程实现socket并发
    python asyncio
    python 池 协程
    python
    python 守护进程
    python 线程 threading模块
    python 安装Django失败处理
    python 队列
    python 锁
    继承,抽象类,多态,封装
  • 原文地址:https://www.cnblogs.com/lingfengchencn/p/2549860.html
Copyright © 2011-2022 走看看