У меня проблемы с этим скриптом. Это скрипт загрузки изображения, и я получаю две ошибки, которые говорят об одном и том же:
Предупреждение: отсутствует аргумент 1 для DoUpload::doUpload(), который вызывается в /var/www/vhosts/mysite.net/httpdocs/mp/upload.php в строке 8 и определяется в /var/www/vhosts/mysite.net/ httpdocs/mp/includes/classes.php строка 26 Файл загружен! Предупреждение: отсутствует аргумент 1 для DoUpload::doUpload(), который вызывается в /var/www/vhosts/mysite.net/httpdocs/mp/upload.php в строке 10 и определяется в /var/www/vhosts/mysite.net/ httpdocs/mp/includes/classes.php в строке 26 Произошла ошибка при загрузке файла!
Но, как вы можете видеть в upload.php, я передаю аргумент: массив $_FILES.
Что я делаю? (Не ищу никого, кто мог бы что-то переписать, мне просто нужно небольшое руководство в том, что я делаю неправильно. :))
classes.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
require('config.php');
// Connect to database
// Does not handle anything else
class DatabaseCon {
public $dbh;
// Method to connect to database
function dbConnect($config) {
try {
$this->dbh = new PDO("mysql:host=" . $config['host'] . ";dbname=" . $config['dbname'], $config['dbuser'], $config['dbpass']);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
}
class DoUpload {
private $target_path = 'i/';
public $_FILES;
public function doUpload($_FILES) {
$this->target_path .= basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $this->target_path)) {
echo "The file has been uploaded!";
}
else {
echo "An error occurred when uploading the file!";
}
}
}
upload.php
<?php
ini_set('display_errors', 1);
require_once('includes/config.php');
require_once('includes/classes.php');
$db = new DatabaseCon();
$db->dbConnect($config);
$upload = new DoUpload();
$upload->doUpload($_FILES);
$sth = $db->prepare("INSERT INTO images (filename) VALUES (?)");
$sth->bindParam(1, $_FILES['file']['tmp_name']);
$sth->execute();