Загрузка файла из php не работает с использованием varaible в пути, но работает, если я добавил значение - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь загрузить файл из моей программы на c # на сервер php, проблема в том, что когда я отправляю путь в виде переменной из c # в файл php ($ gradephp), он загружает файл в папки с файлами (даже если ончитает значение переменной, используя оператор echo), но если я установлю значение переменной ($ gardephp = "4") в php-файле, оно будет загружено правильно

Вот мой код

<?php
    $servername="******";
    $server_username="***";
    $server_Password="****";
    $dbName="public";
    $gradephp=$_POST["gradephp"];
    $qphp=$_POST["qidphp"];

    $uploads_dir = "files/".$gradephp."/";
    echo $uploads_dir;

    if (file_exists($_FILES)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0;
    }
    if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["file"]["tmp_name"];
        $name = $_FILES["file"]["name"].$qphp;
        echo $gradephp.$qphp;
        move_uploaded_file($tmp_name, $uploads_dir.$name);
        echo "ok";
    }
?>

Iтакже пробовал это, но возникает та же проблема:

<?php
    $servername="******";
    $server_username="***";
    $server_Password="****";
    $dbName="public";
    $gradephp=$_POST["gradephp"];
    $qphp=$_POST["qidphp"];
    $x=$gradephp;
    echo $x;
    if ($x == "1") {
        $uploads_dir = "files/1/";
    }
    else if ($x == "2") {
        $uploads_dir = "files/2/";
    }
    else if ($x == "3") {
        $uploads_dir = "files/3/";
    }
    else if ($x == "4") {
        $uploads_dir = "files/4/";
    }
    else if ($x == "5") {
        $uploads_dir = "files/5/";
    }
    else if ($x == "6") {
        $uploads_dir = "files/6/";
    }
    else {
        echo "notfound";
    }
    echo $uploads_dir;
    if (file_exists($_FILES)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0;
    }
    if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["file"]["tmp_name"];
        $name = $_FILES["file"]["name"].$qphp;
        echo $gradephp.$qphp;
        move_uploaded_file($tmp_name, $uploads_dir.$name);
        echo "ok";
    }
?>

1 Ответ

0 голосов
/ 20 мая 2019

Используется POST

$gradephp=$_POST["gradephp"];` 

Вы не можете установить его через URL-адрес, но придется сделать запрос POST, используя форму.В основном это причина, по которой обычно используется POST: поэтому пользователь не может видеть / манипулировать значением в URL.

Если вы используете UnityWebRequest.Post, вы бы добавилинапример, параметр MultiPartFormSection, как

List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
formData.Add(new MultipartFormDataSection("gradephp=4"));
formData.Add(new MultipartFormFileSection("my file data", "myfile.txt"));

using (var www = UnityWebRequest.Post("http://some.host.url", formData);
{
    yield return www.SendWebRequest();
}

Если, однако, вы хотите, чтобы мог установить его через URL, как в вашем случае, например,

http://some.host.url?gradephp=4

вместо этого используйте GET вместо:

$gradephp=$_GET["gradephp"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...