Нет строки результата при загрузке файла на сервер PHP с помощью клиента C # - PullRequest
0 голосов
/ 02 мая 2019

У меня есть PHP-код для загрузки файла из клиента C #:

PHP:

<?php

if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
    $tmp_name = $_FILES["file"]["tmp_name"];
    $name = $_FILES["file"]["name"];
    move_uploaded_file($tmp_name, "$name");
}
?>

C #:

WebClient Client = new WebClient();
Client.Headers.Add("Content-Type", "binary/octet-stream");
byte[] result = Client.UploadFile("https://products.softsolutionslimited.com/php.new/marketing/upload.php", "POST",
                                  @"c:\file.zip");
string s = Encoding.UTF8.GetString(result, 0, result.Length);

Работает нормально, иФайл успешно загружен, но я получаю нулевой ответ в переменной byte[] result.Могу ли я получить ответ от вызова UploadFile?В противном случае я проверяю, существует ли файл, соответствует ли он размеру и т. Д. С помощью этого кода:

WebRequest Request = HttpWebRequest.Create("https://products.softsolutionslimited.com/php.new/marketing/Author.png");
Request.Method = "HEAD";
Request.Credentials = System.Net.CredentialCache.DefaultCredentials;
using (HttpWebResponse Response = (HttpWebResponse)Request.GetResponse())
{
    if (Response.StatusCode != HttpStatusCode.OK)
    {
        MessageBox.Show("error");
        return;
    }
}

Но, похоже, возникают дополнительные издержки, если я не могу получить прямой результат от вызова UploadFile.

Ивозможно ли получить URL-адрес сохраненного файла на сервере в результате вызова API?

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

WebClient UploadFile зависит от метода HTTP post, поэтому в принципе это возможно.Но вы ничего не возвращаете в своем php-коде.

Чтобы вернуть текст в php

echo 'text to return';
1 голос
/ 02 мая 2019

WebClient.UploadFile возвращает тело ответа от HTTP-запроса. В настоящее время ваш код PHP не выводит.

Просто верните какой-нибудь вывод из вашего PHP-кода, и вы увидите это в ответе. Это может быть любое подтверждение, которое вам нравится. Например:

echo $name;

(Лично я предпочел бы использовать JSON для своих запросов / ответов API, но общая концепция та же.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...