所以我有这个 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请求之间有什么区别?
答案 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));
}
现在它完美无缺。