Upload souborů na server

Vyřešeno277 zhlédnutíWebhostingopen_basedir PHP upload
0

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ěď.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
MB313456 Vybral nejlepší odpověď 26. 9. 2023
0

Tak nvm, už jsem na to přišel, měl problém s cestou.

$targetDirectory = "/www/domains/domena.tld/IMAGES/"; //nejede
$targetDirectory = $_SERVER['DOCUMENT_ROOT'] . '/domains/domena.tld/IMAGES/'; //jede

Děkuji za ochotu!

Role: Zákazník
MB313456 Vybral nejlepší odpověď 26. 9. 2023
0
84.52K Odpověď od WEDOS Internet, a.s. 0 Comments

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?

Role: Podpora Web: https://kb.wedos.com Vizitka: WEDOS Specialista na Znalostní bázi
MB313456 Odpověděl na otázku 26. 9. 2023
0

Děkuji za rychlou odpověď, určitě můžete.

Role: Zákazník
MB313456 publikoval nový komentář 26. 9. 2023