0

我正在 php 服务器上上传带有 C# 代码的文件。但面临一些问题。

首先,我使用 WebClient 对象通过调用 UploadFile() 方法上传文件,并通过以下代码调用 UploadString() 方法上传字符串:

        String StoreID = "First Store";
        WebClient Client = new WebClient();
        String s = Client.UploadString("http://localhost/upload.php", "POST", StoreID);
        Client.Headers.Add("Content-Type","binary/octet-stream");
        byte[] result = Client.UploadFile("http://localhost/upload.php", "POST", "C:\\aaaa.jpg");
        s = s + System.Text.Encoding.UTF8.GetString(result,0,result.Length);

问题是我请求了两次,所以字符串和文件没有同时发送。我收到字符串或文件。但我同时需要两者。我不想使用UploadData()因为它会使用字节码,而且我知道我知道如何在 php 中提取它。

Let that string is folder name, i have to send string and file, so that file could save at specified folder at php server.

I studied there may be a solution with WebRequest and WebResponse object. But dont know how to send request using WebResponse by C# and get it at PHP.

Any Suggestions!!!!

4

2 回答 2

0

尝试这个 :

    WebClient web = new WebClient();
try{

    web.UploadFile("http://" + ip + "/test.php", StoreID);
}
catch(Exception e)
{
    MessageBox.Show("Upload failed");
}

现在您可以从 PHP 文件访问该文件。

 <?php
//check whether the folder the exists
if(!(file_exists('C:/Users/dhanu-sdu/Desktop/test')))
{
  //create the folder
  mkdir('C:/Users/ComputerName/Desktop/test');
  //give permission to the folder
  chmod('C:/Users/ComputerName/Desktop/test', 0777);
}

//check whether the file exists
if (file_exists('C:/Users/ComputerName/Desktop/test/'. $_FILES["file"]["name"]))
{
  echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
  //move the file into the new folder
  move_uploaded_file($_FILES["file"]["tmp_name"],'C:/Users/ComputerName/Desktop/test/'. $_FILES["file"]["name"]);

}

?>

此外,您可以使用以下代码从 PHP 服务器下载数据并将其显示在 C# Web 浏览器中:

 WebClient web = new WebClient();
try{
    byte[] response = web.DownloadData("http://" + ip +"/test.php");
    webBrowser1.DocumentText = System.Text.ASCIIEncoding.ASCII.GetString(response);
}
catch(Exception e)
{
    MessageBox.Show("Download failed");
}
于 2012-10-31T12:22:13.550 回答
0

您可以使用接受文件的 php 创建 web 服务。然后发布该 web 服务,并将其添加到您的 c# 引用中,然后只需从接受该文件的 c# 代码中调用 teh 方法,然后 vualá!

如何使用 php链接创建 SOAP

于 2012-10-31T12:26:32.703 回答