Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana katalogu uplodowanego pliku przy użyciu FTP
Forum PHP.pl > Forum > PHP
wlodekp
Cytat
<?php
if(isset($_POST['start_upload']) && $_FILES['txt_file']['name'] != ""){
$ftp_server = "strona.pl";
$ftp_port ="21";
$ftp_user_name = "xxxxx";
$ftp_user_pass = "xxxxx";
$local_file = $_FILES['txt_file']['tmp_name'];
$destination_file = "/".basename($_FILES['txt_file']['name']);
$conn_id = ftp_connect("$ftp_server", $ftp_port);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if ((!$conn_id) || (!$login_result)) {
echo "FTP poł&plusmn;czenie bł&plusmn;d! <br />";
exit;
}
$chdir = ftp_chdir($conn_id, "www");
// echo ftp_pwd($conn_id);
if ($chdir) {
$upload = ftp_put($conn_id, $destination_file, $local_file, FTP_BINARY);
if (!$upload) {
echo "<h2>FTP upload pliku: ".$_FILES['txt_file']['name']." Bł&plusmn;d!</h2><br /><br />";
} else {
echo "Dodano plik:<br />" . $_FILES['txt_file']['name'] . " do " . $ftp_server . $destination_file . "<br /><br />";
}
ftp_close($conn_id);
}
}
echo"
<script type='text/javascript'>
window.onload = function() {
document.getElementById('progress').style.visibility = 'hidden';
document.getElementById('prog_text').style.visibility = 'hidden';
}

function dispProgress() {
document.getElementById('progress').style.visibility = 'visible';
document.getElementById('prog_text').style.visibility = 'visible';
}
</script>
<form action='uploadftp.php' method='POST' enctype='multipart/form-data'>
Wybór pliku <input name='txt_file' type='file' size='35' />
<input type='submit' name='start_upload' value='Dodaj plik' onClick='dispProgress()' />
</form>
<img id='progress' src='http://strona.pl/images/loader.gif' />
<p id='prog_text' style='display:inline;'> Upload Started!</p>";
?>
Skrypt przesyła plik jednak tylko do katalogu głównego, nie mogę przesłać pliku do podkatalogu zaznaczona jako komentarz funkcja;<BR>[/code]// echo ftp_pwd($conn_id); pokazuje zmianę katalogu bieżącego i teoretycznie przesył powinien nastąpić do niego jednak idzie do głównego.
Sprawdzałem to na kilku serwerach efekt ten sam więc stawiam na mój błąd w skrypcie, którego nie mogę znaleść.
Nadmieniam, że dodanie /www www/ nie skutkuje.
Proszę więc o pomoc w nurującym mnie problemie.
deirathe
kod w tagi, bo tak to wątpię że komuś się będzie chciało to analizować...
wlodekp
Fajnie, że wątpisz.
Ja już dawno nauczyłem się licz na siebie.
Rozwiązanie mojego problemu jest banalnie proste należy podać faktycżną ścieżkę zapisu pliku czyli:
$destination_file = ftp_pwd($conn_id)."/".basename($_FILES['txt_file']['name']);
I możemy się cieszyć działającym uploadem po ftp.
Takie rozwiązanie było mi potrzebne ponieważ moi koledzy użytkownicy forum http://php-fusion.pl prosili o nie ze względu na ograniczenia hostingów uplodowanych plików w php.ini.
Znajdzie ono zastosowanie w którymś z systemów downloads php-fusion.
Na http://wlodekp.europa.pl jest testowo kilka z nich prezentowanych.
Rozwiązanie problem usyskałem dzięki pomocy jednego z adminów @Grześ na forum php-fusion.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.