使用C#将文件上传到Web服务器
File upload to web server using C#
我正在尝试使用 C# 在网络服务器中上传文件,如下所示
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);
}
但每次我收到这个错误:
The remote server returned an error: (405) Method Not Allowed.
该错误表示服务器不允许您使用的"PUT"方法。检查响应 headers 以获取允许的方法。更多信息 here.
或者查看您尝试将文件上传到的应用程序的文档。
错误表明您需要注册您正在使用的服务
如果是wcf,你可以这样注册
"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication
Foundation\ServiceModelReg.exe" -r
我已经使用 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");
?>
我正在尝试使用 C# 在网络服务器中上传文件,如下所示
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);
}
但每次我收到这个错误:
The remote server returned an error: (405) Method Not Allowed.
该错误表示服务器不允许您使用的"PUT"方法。检查响应 headers 以获取允许的方法。更多信息 here.
或者查看您尝试将文件上传到的应用程序的文档。
错误表明您需要注册您正在使用的服务
如果是wcf,你可以这样注册
"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
我已经使用 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");
?>