附件上传正确,但响应 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));
}
现在可以完美运行了。
所以我有这个 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));
}
现在可以完美运行了。