我写了一个简单的代码。我不明白,这里发生了什么。请向我解释,我在哪里可以找到给定的上传文件
WebClient client = new WebClient();
string uri = "http://localhost:8080/sample.txt";
client.Credentials = CredentialCache.DefaultCredentials;
string Filename = "F:\sample_test.txt/docx;
byte[] arrReturn = client.UploadFile(uri, "POST", Filename);
答案 0 :(得分:1)
嗯,从这开始就明确不是你的真正的代码,因为这行不会编译:
string Filename = "F:\sample_test.txt/docx/";
\s
不是有效的转义序列但是,假设您有工作代码,那么您的应用程序将使用该文件的内容向给定的URI发出HTTP POST请求 - 在此情况1}}。它完全完全直到服务器它对请求的作用。
上传文件的行为无法保证 - 您只是使用某些数据发出请求。
现在,如果您的URI 确实涉及http://localhost:8080/sample.txt
,那么它会将文件上传到您所在的计算机上 - 因此您应该控制在端口8080上侦听的Web服务器将与上传请求有关。同样,我们不能告诉你将做什么 - 这取决于服务器。
答案 1 :(得分:0)
可能是您的文件名:
string Filename = "F:\sample_test.txt/docx/";
将正斜杠更改为黑色斜杠,并提供实际文件名,而不仅仅是路径:
string Filename = @"F:\sample_test.txt\docx\";
或者
string Filename = "F:\\sample_test.txt\\docx\\";
实际上,文件名不是很有意义 - 我不确定UploadFile
如何处理它,即使斜杠以正确的方式处理,因为你似乎有一个文件名后跟一个目录...?实际上不应该是:
string Filename = @"F:\docx\sample_test.txt"?
它可以是URI - 您指定文件名和URI。
您是否查看了URI中指定的位置? http://localhost:8080/?
如果它不存在,那么尝试将代码包装在try-catch块中以查看是否抛出任何异常:
try
{
byte[] arrReturn = client.UploadFile(uri, "POST", Filename);
}
catch (Exception ex)
{
// do something here - in the debugger, you can inspect ex.Message to see the exception
}