이 스크립트에 문제가 있습니다. 그것은 이미지 업로드 스크립트 있고 난 똑같은 말을 두 가지 오류가 무엇입니까 : /var/www/vhosts/mysite.net/에서 호출, DoUpload :: doUpload()에 대한 누락 된 인수 1 :인수가 합격 되었더라도 누락 된 인수가 있습니까?
경고 httpdocs/mp/upload.php 온라인 및 /var/www/vhosts/mysite.net/httpdocs/mp/includes/classes.php에 정의 됨 on line 26 파일이 업로드되었습니다! 경고 : DoUpload :: doUpload()에 대한 인수 1이 누락되었습니다. /var/www/vhosts/mysite.net/httpdocs/mp/upload.php on line 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();
내부 클래스에서 super-globals를 사용하는 것에 대해 진지하게 조언하고 싶습니다. – favoretti
다른 옵션은 @favoretti입니까? 나는 DRY를 따르려고 노력하고 있는데 $ file = $ _FILES [ 'file'] [ 'tmp_name']; –
'$ my_files = $ _FILES; doUpload ($ my_files);'를 호출하고'doUpload()'의 매개 변수를'$ _FILES'에서'$ my_files' 같은 이름으로 변경합니다. – favoretti