附件上传正确,但响应 returns 错误

Attachment is uploaded correctly, but returns wrong response

所以我有这个 C# 函数可以将文件上传到 cms 系统。

    private void UploadFilesToRemoteUrl(string Link_To_ASP, string files)
    {
        WebClient wc = new WebClient();
        wc.UploadFile(Link_To_ASP, "post", files);

        Stream myStream = wc.OpenRead(Link_To_ASP);
        StreamReader sr = new StreamReader(myStream);
        MessageBox.Show(sr.ReadToEnd());
        myStream.Close();
    }

Link_To_ASP 参数正在调用执行请求的经典 asp。

这是 asp 中正在上传的部分(使用 ChestySoft 组件):

Set Upload = Server.CreateObject("csASPUpload32.Process")

运行正常,文件已上传。

然后我做这个检查:

If Upload.FileQty > 0 Then
'Code with response info about the image

如果我使用像下面这样的简单网络表单,我会收到正确的回复:

<form action="Link_To_ASP">
    Select image to upload:
                <br>
                <br>
    <input type="file" name="file1" >
                <br>
                <br>
    <input type="submit" value="Upload" name="submit">
</form>

在这种情况下,检查通过并且 Upload.FileQty returns 1,加上我需要的所有文件信息。

但是当我使用我的 C# 函数时,它 returns Upload.FileQty = 0 (即使上传成功!)而且我不能获取我需要的文件信息。

为什么会这样?简单的 Web 表单和我的 C# post 请求有什么区别?

事实证明问题 不是 在 chestysoft 组件或 ASP 中,而是在我遇到的 C# 请求中,更具体地说 -编码。

所以我刚刚更改了这个:

private void UploadFilesToRemoteUrl(string Link_To_ASP, string files)
{
    WebClient wc = new WebClient();
    wc.UploadFile(Link_To_ASP, "post", files);

    Stream myStream = wc.OpenRead(Link_To_ASP);
    StreamReader sr = new StreamReader(myStream);
    MessageBox.Show(sr.ReadToEnd());
    myStream.Close();
}

进入这个:

private void UploadFilesToRemoteUrl(string Link_To_ASP, string files)
{
     WebClient wc = new WebClient();
     byte[] responseArray = wc.UploadFile(url,"POST", files);
     Console.WriteLine("\nAttachmentID:\n{0}",Encoding.ASCII.GetString(responseArray));
}

现在可以完美运行了。