附件已正确上传,但会返回错误的回复

时间:2016-03-11 15:08:44

标签: c# asp-classic image-upload

所以我有这个 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返回1 ,以及我需要的所有文件信息。

但是当我使用我的C#功能时,它返回 Upload.FileQty = 0 (即使上传成功!),我也无法获得所需的文件信息。

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

1 个答案:

答案 0 :(得分:0)

事实证明,它在胸部组件或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));
}

现在它完美无缺。