Как отладить, если изображение не загружается на сервер - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу загрузить изображение на сервер и сохранить имя файла в MySql.Я загружаю из изображения из приложения Android, я отправляю все необходимые параметры из приложения Android, но все же что-то не так в копировании изображения на сервере.Это повторяет "Ошибка загрузки".

<?php

$uploaddir = 'DocumentClient/';
$cid=$_POST['cid'];
$type = $_POST['type'];
$filetype = $_POST['filetype'];

include('../Config.php');

$conn = mysqli_connect("localhost","$username","$password","$db");
// Check connection
if ($conn->connect_error) 
{
    die("Connection failed: " . $conn->connect_error);
}
else
{
        $_FILES["uploadedfile"]["name"]=$cid.$type.".jpg";

        $uploadfile = $uploaddir . basename($_FILES['uploadedfile']['name']);

        if (copy($_FILES['uploadedfile']['tmp_name'], $uploadfile)) 
        {
        $filename="DocumentClient/".$_FILES["uploadedfile"]["name"];  
        if($type == "Address"){
            $sql = "Update `Clients` SET `DocAddress`='$filename' Where CID='$cid'";
        }else if($type == "ID"){
            $sql = "Update `Clients` SET `DocIdProof`='$filename' Where CID='$cid'";
        }else if($type == "GramPanchayat"){
            $sql = "Update `Clients` SET `DocGrampanchyat`='$filename' Where CID='$cid'";
        }

            if ($conn->query($sql) === TRUE) 
            {

            } 
            else 
            {
            echo "Error: " . $sql . "<br>" . $conn->error;    
            }
        $conn->close();
    }
    else 
    {
    echo "Upload failed";
    }

}
?>

1 Ответ

0 голосов
/ 09 декабря 2018

Давайте начнем здесь.Я бы изменил функцию copy() на функцию move_uploaded_file().

Во-вторых, вам нужно проверить, чтобы убедиться, что путь к месту назначения загрузки существует.Если этого не произойдет, нам нужно его создать.

Нам также необходимо убедиться, что у папки / файла есть права на запись.Если это не так, измените разрешение для папки / файлов.

Затем, когда закончите, измените права доступа к папке / файлам обратно на те, которые были изначально.

Примерно так:

$uploaddir = 'DocumentClient/';
$cid=$_POST['cid'];
$type = $_POST['type'];
$filetype = $_POST['filetype'];

include('../Config.php');

$conn = mysqli_connect("localhost","$username","$password","$db");
// Check connection
if ($conn->connect_error) 
{
    die("Connection failed: " . $conn->connect_error);
}
else
{
        $_FILES["uploadedfile"]["name"]=$cid.$type.".jpg";

        $uploadfile = $uploaddir . basename($_FILES['uploadedfile']['name']);

        //Check to see if the folder exist.
        if(!file_exists($uploaddir)) {

        mkdir($uploaddir, 0777, true); //If it does not exist then create it and set permissions to be able to write.

        }

        //The folder does exist at this point. Check to see if it's writable.
        if(!is_writable($uploaddir)){

          chmod($uploaddir, 0777); //The folder is not writeable. Set the folder to be able to write.

        }

        if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploadfile)) 
        {
        $filename="DocumentClient/".$_FILES["uploadedfile"]["name"];  
        if($type == "Address"){
            $sql = "Update `Clients` SET `DocAddress`='$filename' Where CID='$cid'";
        }else if($type == "ID"){
            $sql = "Update `Clients` SET `DocIdProof`='$filename' Where CID='$cid'";
        }else if($type == "GramPanchayat"){
            $sql = "Update `Clients` SET `DocGrampanchyat`='$filename' Where CID='$cid'";
        }

            if ($conn->query($sql) === TRUE) 
            {

            } 
            else 
            {
            echo "Error: " . $sql . "<br>" . $conn->error;    
            }
        $conn->close();

        //Reset the permissions back to what you need them to be.
        //You probably want 0755
        chmod($uploaddir, 0755);
        chmod($uploadfile, 0644); //Sets your new file to read only.

        //Add this code below to test.
        if(file_exists($uploadfile)) {

        echo 'Your file exist.';

        }else{

          echo 'You file does not exist.';

          }

    }
    else 
    {
    echo "Upload failed";
    }

}

Некоторые ресурсы для чтения.

move_uploaded_file ()

is_writeable()

chmod ()

Вы также захотите ознакомиться с правами доступа к файлам и узнать, как их правильно установить.Неправильное выполнение этого может оставить вас открытыми для нежелательных проблем безопасности.

Надеюсь, это поможет.

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