Upload souborů na server
Dobrý den, mám stránky na kterých bych potřeboval aby uživatelé nahráli soubor, zejména obrázky.
Obrázek by se měl nahrávat přes běžný form, a krátký php script ->
<?php
$image = $_FILES['image']['name'];
$targetDirectory = "/www/domains/domena.tld/IMAGES/";
$targetFile = $targetDirectory . basename($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $targetFile)) {
header("Location: ../management.php?status=1");
exit();
} else {
header("Location: ../management.php?status=0");
exit();
}
?>
Ovšem při pokusu o nahrání to vyhodí exception.
move_uploaded_file(): open_basedir restriction in effect.
Dále jsem zkoušel nahrát obrázek přes ftp->
<?php
$ftp_server = 'XXXXX.wXX.wedos.net';
$ftp_username = 'wXXXXX';
$ftp_password = 'XXXXXXXXX';
$local_file = $_FILES['image']['tmp_name'];
$remote_file = '/www/domains/domena.tld/IMAGES/' . $_FILES['image']['name'];
$conn_id = ftp_connect($ftp_server);
ftp_pasv($conn_id, true);
$login_result = ftp_login($conn_id, $ftp_username , $ftp_password);
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_username";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_username";
}
$upload = ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY);
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $local_file to $ftp_server as $remote_file";
}
ftp_close($conn_id);
?>
Kde jsem dostal podobnou vyjímku
Warning: ftp_put(): Could not create file.
Jak jsem se dočet z ostatních otázek vypnout open_basedir restriction nepřichází v úvahu, je tedy nějaký korektní způsob jak soubor nahrát?
Děkuji za odpověď.
3 Odpověď
Dobrý den,
s konkrétním kódem Vám bohužel poradit nedokážu, ale upload na webhostingu běžně funguje, a WebFTP klient funguje také přes PHP, takže nahrávání přes FTP by také mělo být podporováno.
Navrhoval bych odstranit z Vašeho kódu konkrétní názvy serverů a dotaz publikovat, třeba problém vyřeší některý z návštěvníků fóra. Můžu dotaz upravit a publikovat?