1

我编写了一个小应用程序来测试与我编写的 Web 服务的连接。我的问题是,我不知道如何更改输入类型的名称。

我的网络服务看起来像这样

    if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) 
    {
           $tmp_name = $_FILES["datei"]["tmp_name"];
           $name = $_FILES["datei"]["name"];
           move_uploaded_file($tmp_name, $this->uploads_dir."$name");
           return $this->uploads_dir.''.$name;
    }

我可以从网络浏览器调用它,一切正常。

<form action="index.php?action=upload" method="post" enctype="multipart/form-data"> 
<input type="file" name="datei"><br>
<input type="submit" value="Hochladen"> 
</form>

但是如果我从我的 c# 代码中尝试它会变得很困难

    public static void UploadFilesToRemoteUrl(string url, string datei)
    {
        System.Net.ServicePointManager.Expect100Continue = false;
        WebClient wc = new WebClient();
        byte[] arr = wc.UploadFile(url,"post",datei);

        System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
        string sr = enc.GetString(arr);
        MessageBox.Show(sr);
    }

上面的代码不能直接工作。我发现当我更改<input type="file" name="datei">为 <input type="file" name="file">时它会起作用。

在这里我的问题是我可以在 C# 中解决这个问题,这样我就不必更改 PHP 代码了吗?

我认为这是一个非常简单的问题,但我对 web 开发不太熟悉提前谢谢。

4

1 回答 1

0

我建议您使用 fiddler ( http://fiddler2.com/ ) 来查看您通过网络发送的内容。您应该比较浏览器发送的消息(工作正常)和您的测试应用程序在 C# 中发送的消息。

一旦您知道 HTTP 消息的哪个字段是错误的,您可以尝试在 wc 对象中更正它。

于 2013-10-28T16:33:46.643 回答