Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

revcorey

[php]download na serwer

Rekomendowane odpowiedzi

Mam problem. To co napisałem jest tak trywialne w implementacji że aż nie wiem. Zrobiłem sobie prosty "system" downloadu

formularz_wyslij.php

 <form action="wyslij_plik.php" method="post" enctype="multipart/form-data">

Wprowadź nazwę pliku: <input type="file" name="plik_uz">
<br /><input type="submit" value="prześlij">

</form>

wyslij_plik.php

<?php
$f = $_FILES['plik_uz'];
$file = $f['tmp_name'];


$zapisz_jako = '/home/radek/php/download/'.$f['name'];

if (!rename($file, $zapisz_jako)) { // to jest linia 8

  print ("Kopiowanie pliku nie powiodło się...<br>\n");

} 



?>

To niby ma ładować plik z dysku na serwer. A nie ładuje. Wyrzucam mi:

Warning: rename(/tmp/phpJOeyym,/home/radek/php/download/gaudeamus.doc.zip) [function.rename]: No such file or directory in /home/radek/php/fd/RMCMS/templates/admin/administracja/wyslij_plik.php on line 8

Nie wiem czemu. Nie ładuje. Niby wszystko ok plik powinien być w /tmp i powinienem go spokojnie skopiować(tyle że nie wiem czemu jest /tmp/phpJOeyym czy to nie powinien to być ten plik który wrzucam a nie phpJOeyym). Ale uwaga już wyjaśniam czemu nie użyłem polecenia copy() , ponieważ kiedy go użyje to nie wiedzieć czemu:

Warning: rename(/home/radek/php/download/gaudeamus.doc.zip) [function.rename]: No such file or directory in

czyli bez /tmp/phpJOeyym a przecież do funkcji przekazuje dwa stringi

Nie wiem może to coś z prawami do plików no ale wtedy bym miał inny rodzaj błędu

, a może mam źle serwer ustawiony?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Sprobuj skorzystac z innej funkcji.

nic to nie daje

jutro zobaczę na windows + IIS

błąd teraz to

Warning: move_uploaded_file(/home/radek/php/download/wos.bmp) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/radek/php/fd/RMCMS/templates/admin/administracja/wyslij_plik.php on line 8

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpc2NMgh' to '/home/radek/php/download/wos.bmp' in /home/radek/php/fd/RMCMS/templates/admin/administracja/wyslij_plik.php on line 8
Kopiowanie pliku nie powiodło się...

 

 

Tak na marginesie zastanawiałem się czy może nie spróbować to przy użyciu polecenia system() (ale wtedy chyba stracę przenośność)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A sprawdz istnienie pliku przed przeniesieniem. Moze serwer go nie zapisuje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
A sprawdz istnienie pliku przed przeniesieniem. Moze serwer go nie zapisuje.

istnieje w kazdym razie mi się tak wydaje użyłem czegoś takiego do sprawdzenia

 //deklaracja ścieżki do pliku
$test = file_exists($file); //sprawdzenie czy plik istnieje
if (!$test) //jeżeli plik nie istnieje 
{
echo "Na serwerze nie ma pliku" .$plik; //informacja o braku pliku na serwerze
}
else
{
echo "Plik " .$plik. " istnieje"; //informacja, że istnieje plik o nazwie $plik na serwerze
}

zmienna $file to:

$file = $f['tmp_name'];

Czy w poprawny sposób to sprawdziłem?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Warning: move_uploaded_file(/home/radek/php/download/wos.bmp) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/radek/php/fd/RMCMS/templates/admin/administracja/wyslij_plik.php on line 8

a pokaż kod, bo coś mi sie to nie podoba...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
a pokaż kod, bo coś mi sie to nie podoba...

kod jest w zasadzie ten sam co w pierwszym poście tylko zmieniłem rename na move_uploaded_file w zasadzie tez mnie dziwi czemu nie może otworzyć strumienia

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
kod jest w zasadzie ten sam co w pierwszym poście tylko zmieniłem rename na move_uploaded_file w zasadzie tez mnie dziwi czemu nie może otworzyć strumienia

a sprawdz co jest w $_FILES['plik_us']['error']? albo całe print_r($_FILES). czasem pokazuje niespodziewane cuda

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
a sprawdz co jest w $_FILES['plik_us']['error']? albo całe print_r($_FILES). czasem pokazuje niespodziewane cuda

nic 0 tylko wypisuje czyli brak błędu. Dobra ja to jeszcze jutro sobie na IIS sprawdzę i pomyślę

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprobuj uzyc is_readable zamiast file_exists(). Moze chodzic o prawa, ktorych nie ma PHP. Mozesz tez sprobowac uzyc copy() zamiast rename() -- znow przez prawa, rename() niejako kopiuje do nowego i usuwa stary (w inny oczywiscie sposob, liczy sie jednak efekt), a do usuniecia mozesz nie miec praw.

Poczytaj tez komentarze do sekcji Handling file uploads w dokumentacji PHP.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Sprobuj uzyc is_readable zamiast file_exists(). Moze chodzic o prawa, ktorych nie ma PHP. Mozesz tez sprobowac uzyc copy() zamiast rename() -- znow przez prawa, rename() niejako kopiuje do nowego i usuwa stary (w inny oczywiscie sposob, liczy sie jednak efekt), a do usuniecia mozesz nie miec praw.

Poczytaj tez komentarze do sekcji Handling file uploads w dokumentacji PHP.

używałem copy już wcześniej w pierwszym poście napisałem że z nim też są problemy. A jeśli chodzi o prawa to raczej wyskakiwało by mi Access denided czyli brak dostępu a nie wyskakuje. Ale może coś jeszcze poczytam o tych prawach

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Prawo do odczytu pozwala Ci na zrobienie sobie kopii pliku. Natomiast nie pozwoli Ci go przeniesc, bo nie mozesz wplywac w zaden sposob na plik. W pierwszym poscie rzeczywiscie pisales o copy() ale podales blad z rename(), moze wiec nie probowales wystarczajaco dobrze.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Prawo do odczytu pozwala Ci na zrobienie sobie kopii pliku. Natomiast nie pozwoli Ci go przeniesc, bo nie mozesz wplywac w zaden sposob na plik. W pierwszym poscie rzeczywiscie pisales o copy() ale podales blad z rename(), moze wiec nie probowales wystarczajaco dobrze.

próbowałem tylko jest rename bo przekopiowałem sobie dwa razy to samo bo w zasadzie błąd był taki sam ale już wrzucam jeszcze raz poprawnie

Warning: copy(/home/radek/php/download/wos.bmp) [function.copy]: failed to open stream: No such file or directory in /home/radek/php/fd/RMCMS/templates/admin/administracja/wyslij_plik.php on line 21
Kopiowanie pliku nie powiodło się...

Co ciekawe nie pojawia się ścieżka do /tmp a podaje funkcji dwa stringi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kurcze nie mam narazie czasu ale w piątek wieczorem albo w sobotę znajde troche czasu i poinformuje was czy cos wymyślił.@Weasel sprawdzę jak tylko będę miał czas

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
A co Ci mowi is_readable?

dobra dla pliku który jest na serwerze w /tmp to

mówi mi 1 czyli TURE

 

a dla tego co jest u mnie na dysku mówi zero czyli nie. Tyle ze za pomocą chmod dałem plikowi wszystko co się da i nic

mówiąc krótko dziwne to jest

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...