简体   繁体   中英

how to access php.ini and set file_upload directive to “on”

I am working on my school project which we use Winscp as a server. So im new to php trying to work on image upload and I have read many articles saying I need to edit my php.ini file and set file_uploads directive to "on". But I just do not know where my php.ini file is at.

Here is my link to my phpinfo.php: http://cgi.sice.indiana.edu/~baehy/phpinfo.php So it says my php.ini is at /etc/php.ini and I cannot find it on my computer(i know it may sound silly)

Every comment is appreciated! Thank you all in advance!

Here is my code

<?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 and also do I need to put the absolute path of the folder('uploads') to use it in the code? Thank you!

Using WinSCP, connect to remote server. Go to remote server's root directory and then go to /etc/php.ini .

It won't be on your computer, it's on the remote server. The server is running on Apache. You are using Winscp as a FTP software to access the files of remote server.

Learn how to use WinSCP - https://www.siteground.com/tutorials/ssh/winscp/

Php.ini is system file located at remote web server and it contains global configuration for PHP. Only privileged users can edit php.ini.

You can change local configuration for your script using function ini_set , for example:

ini_set('max_exection_time', 60);

According to phpinfo() you sent, you already have file_uploads set to On. So you don't need to edit anything. Just open link you sent, press CTRL+F and search for file_uploads .


By the way, WinSCP is only application used to transfer files to remote web server using FTP/SFTP or similar protocols. Actually your web server is running on RHEL Apache 2.4.6. Just see section SERVER_SOFTWARE in your phpinfo.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM