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");

     

     

  • 相关阅读:
    org.apache.commons.net.ftp
    java中的匿名内部类总结
    有关JVM处理Java数组方法的思考
    使用myeclipse创建带注解的model实体类
    Maven导出Project依赖的jar包
    annotation-config, annotation-driven, compont-scan 区别
    hibernate annotation注解方式来处理映射关系
    关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
    Hibernate批量操作(二)
    Hibernate批量操作(一)
  • 原文地址:https://www.cnblogs.com/lingfengchencn/p/2549860.html
Copyright © 2011-2022 走看看