我正在尝试使用C#
在Web服务器上上传文件try
{
// create WebClient object
WebClient client = new WebClient();
string myFile = @"D:\test_file.txt";
client.Credentials = CredentialCache.DefaultCredentials;
// client.UploadFile(@"http://mywebserver/myFile", "PUT", myFile);
client.UploadFile(@"http://localhost/uploads", "PUT", myFile);
client.Dispose();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
但每次我收到此错误:
远程服务器返回错误:(405)Method Not Allowed。
答案 0 :(得分:5)
我使用POST方法和服务器端代码解决了这个问题:
C#代码
try
{
WebClient client = new WebClient();
string myFile = @"D:\test_file.txt";
client.Credentials = CredentialCache.DefaultCredentials;
client.UploadFile(@"http://localhost/uploads/upload.php", "POST", myFile);
client.Dispose();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
服务器端PHP代码 upload.php
<?php
$filepath = $_FILES["file"]["tmp_name"];
move_uploaded_file($filepath,"test_file.txt");
?>
答案 1 :(得分:1)
错误表示服务器不允许使用您正在使用的“PUT”方法。检查允许方法的响应标头。更多信息here。
或者查看您尝试上传文件的应用程序的文档。
答案 2 :(得分:1)
错误显示您需要注册正在使用的服务
在wcf的情况下你可以像这样注册
“%WINDIR%\ Microsoft.Net \ Framework \ v3.0 \ Windows Communication Foundation \ ServiceModelReg.exe“-r