使用C#将文件上载到Web服务器

时间:2015-06-27 07:01:57

标签: c# webclient

我正在尝试使用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。

3 个答案:

答案 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

HTTP Error 405 Method not allowed