Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wysłanie pliku PDF/ZIP przez formularz WWW
koperkuba
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


Potrzebuje do mojej strony dodać funkcjonalność:

Użytkownik loguje się za pomocą login/pass i wyświetla mu się formularz umożliwiający dodanie pliku .pdf lub .zip. Plik ma być zapisany w odpowiednim folderze na komputerze zdalnym na którym jest cała strona. Uprawnienia do tego folderu są ustawione na 775. Jak w prosty sposób zrobić przesyłanie, bo z logowaniem itp sobie dałem radę?

Ten post edytował koperkuba 25.07.2012, 08:11:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale czego nie wiesz? Nie wiesz jak się wgrywa pliki? Proszę bardzo:
http://uk3.php.net/manual/pl/features.file...post-method.php
Dokumentacja oraz przykłady


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koperkuba
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


Zrobiłem podobnie jak manualu, teraz mam problem, bo nie wiem jak zmienić "w locie" nazwę przesyłanego pliku.
Np wpisujący wrzuca jakiś plik o nazwie x.pdf a chciałbym zmienić jego pliku na y.pdf
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zrobiłeś dokładnie jak w manualu.... super. Szkoda tylko ze nie myślałeś nad tymi paroma linijkami co skopiowałeś

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
Przecież o to przenosi plik tam gdzie chcesz i nazywa go tak jak chcesz....

if (move_uploaded_file($_FILES['userfile']['tmp_name'], 'tam/gdzie/chcesz/o_nazwie_takiej_jak_chcesz'))
Korzystając z manuala masz też patrzeć co robią te dwie funkcję na skrzyż których używasz a nie tylko kopiować...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koperkuba
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


Zrobiłem, i działa ale tylko na localhost. Jeżeli chce zrobić to na serwerze gdzie mam strony występuje błąd z uprawnieniami do tworzenia plików.
Czy w takim razie nie lepiej byłoby użyć: http://php.net/manual/pl/function.ftp-put.php ?
Czy bezpiecznie jest zamieszczać na serwerze plik php z loginem i hasłem ftp?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poprostu nadaj właściwe prawa na katalog, do którego wrzucasz pliki.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koperkuba
post
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


Podejrzewam, ze właściwe prawa na katalog to nie będą 777:P
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To może podaj DOKŁADNIE błąd jaki dostajesz a nie się tu wymądrzasz...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koperkuba
post
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


failed to open stream: Permission denied in /www/site/zp.php on line 71
Jeśli ustawie prawa 666 to działa. Ale nie wiem czy to dobre rozwiązanie...

Ten post edytował koperkuba 22.08.2012, 09:04:12
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A co masz w linii nr 71? Pokaz caly kod z zaznaczeniem która to linia.

ps: blad raczej wskazuje na brak praw. Może źle nadajesz te 777?

777 nie dziala a 666 dziala? Coś tu szatan miesza.... wink.gif
666 też może być.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koperkuba
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


777 działa. 666 też - bo musi. Tylko czy 666 to jest dobre ustawienie, tzn. czy na tyle bezpieczne żebym mógł sobie to tak zostawić?smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A widzisz, to źle zrozumiałem twoj post:
Cytat
Podejrzewam, ze właściwe prawa na katalog to nie będą 777

smile.gif

No to skoro działa to się ciesz a nie pościsz i pościsz.... post jest dobry w wielki post a nie na codzień wink.gif

Zostaw te 666


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
abort
post
Post #13





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

Ostrzeżenie: (0%)
-----


Ja tylko dopowiem, że jeśli chodzi o uniksy (Linux też) i prawa do katalogów, to prawa dostępu zapisujemy w trzech liczbach ósemkowych:
- pierwsza sekcja odpowiada za prawa dla użytkownika/właściciela pliku
- druga sekcj odpowiada za wszystkich członków grupy, do której należy plik
- trzecia sekcja odpowiada za, ogólnie nazywając, "wszystkich pozostałych".

I tak, jeśli chodzi o prawa dostępu do katalogów, to zasady są takie:
- "r" pozwala na czytanie katalogu
- "w" pozwala na zapisanie do katalogu
- "x" pozwala na WEJŚCIE do katalogu (i wykonywanie w nim operacji zgodnie z prawami j/w)

Odnośnie plików, to:
- "r" pozwala na odczyt
- "w" pozwala na zapis
- "x" pozwala na uruchomienie programu (w odróżnieniu od Windows, to atrybut "x", a nie rozszerzenie decyduje o tym, czy dany plik można uruchomić)

samo "x" na katalogu pozwala nam na robienie wszystkiego w trybie "READ-ONLY", chyba że prawa dostępu do pliku nam to ograniczają
"w" na katalogu pozwala nam na SKASOWANIE PLIKU nawet wtedy, gdy nie jesteśmy jego właścicielem (uwaga: czasami do polecenia "rm" należy dodać opcję "-f" - force). Wynika to z faktu, że skasowanie pliku to tak naprawdę skasowanie wpisu w strukturze katalogu odnośnie istnienia pliku.

Można sobie wyobrazić sytuację, kiedy na katalogu będziemy mieli prawo "x" (i tylko "x"), a na pliku prawa "rw" - tu jest (dla nieobznajomionych) ciekawa rzecz: pliku nie możemy skasować (nie mamy praw zapisu do katalogu), ale... możemy go wyzerować - wszak prawo dostępu do pliku posiadamy smile.gif

Oczywiście posiadanie UID=0 (czyli praw administratora systemu) usuwa wszelkie restrykcje.

W Twoim przypadku myślę, że minimalnym wymaganiem jest, byś nadał:
- na katalog nadasz prawa "wx" dla "other" (musisz odczytać z niego zawartość i move_uploaded_file() musi umieć coś w nim zapisać)
- na pliki nadasz prawa "r"

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:36