как получить доступ к php .ini и установить директиву file_upload на «on» - PullRequest
1 голос
/ 15 апреля 2020

Я работаю над своим школьным проектом, который мы используем Winscp в качестве сервера. Так что я новичок в php, пытаясь работать с загрузкой изображений, и я прочитал много статей, в которых говорится, что мне нужно отредактировать мой файл php .ini и установить директиву file_uploads в значение «on». Но я просто не знаю, где находится мой php .ini файл.

Вот моя ссылка на мой phpinfo. php: http://cgi.sice.indiana.edu/~baehy/phpinfo.php Так написано, что мой php .ini находится по адресу /etc/php.ini, и я не могу найти его на своем компьютере (я знаю, это может звучать глупо)

Каждый комментарий приветствуется! Спасибо всем заранее!

Вот мой код

<?php 
  session_start();
include('database.php');
ini_set('max_exection_time', 60);
if(!isset($_SESSION['userid'])){
header('location: http://cgi.sice.indiana.edu/~baehy/team72index.php');
} else {
echo "Welcome " . $_SESSION['userid'] . "<br>";
if(isset($_POST['submit'])){
$title = $_POST['title'];
$category = $_POST['category'];
$description = $_POST['description'];
//get file from the form and get following information
$file = $_FILES['coverimage'];
$fileName = $_FILES['coverimage']['name'];
$fileTmpName = $_FILES['coverimage']['tmp_name'];
$fileSize = $_FILES['coverimage']['size'];
$fileError = $_FILES['coverimage']['error'];
$fileType = $_FILES['coverimage']['type'];

//retrieve file extention using explode()
$fileExt = explode('.', $fileName);
//because some file extentions might be in capital letters
$fileActualExt = strtolower(end($fileExt));

$allowed = array('jpg','jpeg','png');
if(in_array($fileActualExt, $allowed)){
  if($fileError === 0){
    //if the size of the file is lesser than 1M kb = 1000mb
    if($fileSize < 1000000){
      $fileNameNew = uniqid('',true).".".$fileActualExt;
      chmod('uploads/',0777);
      echo "permission granted to uploads directory!" . "<br>";
      $fileDestination = 'uploads/'.$fileNameNew;
      move_uploaded_file($fileTmpName, $fileDestination);
      echo $fileNameNew . "<br>";
      echo "Successfully uploaded your file" . "<br>";
    } else {
      echo "Your file is too big to upload" . "<br>";
    }
  } else {
    echo "There was an error uploading your file" . "<br>";
  }
} else {
  echo "This file extention is not allowed to be uploaded" . "<br>";
}
$sql = "INSERT INTO `recipe` (title, category, description, coverimage, userid)
VALUES ('".$title."', '".$category."', '".$description."', '".$fileName."', '".$_SESSION['userid']."')";

$result = mysqli_query($conn, $sql);
if($result){
  echo "successfully added to database";
} else {
  echo "failed to add to database";
}
$showImage = mysqli_query($conn, "SELECT `coverimage` FROM `recipe`");
}
}

ps, а также мне нужно указать абсолютный путь к папке ('uploads'), чтобы использовать его в коде ? Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Php .ini - системный файл, расположенный на удаленном веб-сервере, который содержит глобальную конфигурацию для PHP. Только привилегированные пользователи могут редактировать php .ini.

Вы можете изменить локальную конфигурацию для своего скрипта, используя функцию ini_set, например:

ini_set('max_exection_time', 60);

В соответствии с отправленным phpinfo(), у вас уже установлено значение file_uploads на Вкл. Так что вам не нужно ничего редактировать. Просто откройте отправленную ссылку, нажмите CTRL + F и выполните поиск file_uploads.


Кстати, WinSCP - это единственное приложение, используемое для передачи файлов на удаленный веб-сервер с использованием FTP / SFTP или аналогичных протоколов. На самом деле ваш веб-сервер работает на RHEL Apache 2.4.6. Просто посмотрите раздел SERVER_SOFTWARE в вашем phpinfo.

0 голосов
/ 15 апреля 2020

Используя WinSCP, подключитесь к удаленному серверу. Go в каталог root удаленного сервера, а затем go в /etc/php.ini.

Это не будет на вашем компьютере, это на удаленном сервере. Сервер работает на Apache. Вы используете Winscp в качестве программного обеспечения FTP для доступа к файлам удаленного сервера.

Узнайте, как использовать WinSCP - https://www.siteground.com/tutorials/ssh/winscp/

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