Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: " Copy " po raz drugi
Forum PHP.pl > Forum > PHP
Nakiel
Nie wiem dlaczego nie chce mi polecenie niżej skopiować plików na serwer. $adres zawiera ścieżkę na dysku lokalnym, pobraną z formularza. Ma to działać na zasadzie uploadu. Prawa dostępu do katalogu mam ustawione. Ten problem nie występuje gdy mam w domu uruchomionego Apache, ale gdy wrzucam na inny serwer nic się nie chce skopiować.

[php:1:c095a171c4]<?php
copy("$adres", "kursy/download/$data.zip");
?>[/php:1:c095a171c4]
DeyV
Od uploadu są funkcje do uploadu i odpowiednie pole formularza.
Natomiast php jest jezykiem SERVER SIDE, czyli nie może zrobić niczego na jakimkolwiek komputerze poza SERWEREM angrysmiley.gif
BzikOS
Po pierwsze mam nadzieję, że używasz pola formularza "file"?
A jeśli używasz tego pola to na serwer nie jest wysyłany text wpisany w to pole, tylko plik podany w tym polu. Uploadowany plik ląduje w katalogu tymczasowym, więc poleceniem copy kopiujesz ten plik z katalogu tymczasowego do katalogu docelowego, a nazwa jego znajduje się w zmiennej z pola file.

Czyli:
<input type="file" name="plik">

[php:1:a5327d2dec]<?php
// utworzenie bezwzględnej ścieżki
// do katalogu gdzie ma być wrzucony plik
$path = dirname($_SERVER['PATH_TRANSLATED']) . '/upload/';

@copy($plik, $path."nowa_nazwa_pliku");
?>[/php:1:a5327d2dec]
KaMeLeOn
Ale namieszałeś z tym uploadem BzikOS...
A kolega Nakiel niech przejrzy ten przykład.
http://www.php.net/manual/pl/features.file-upload.php
Nakiel
Oczywiście używam pola typu File, poczytam ten artykuł, może się czegoś dowiem
BzikOS
Cytat
Ale namieszałeś z tym uploadem BzikOS...

Część opisową można pominąć, a skupić się na części z kodem smile.gif
Puciek
Oto jak nasze forum robi z igły widły smile.gif
SoulAssassin
Najwsamprzód formularz:

Kod
<form name="upload" method="POST" enctype="multipart/form-data" action="plik_ktory_kopiuje.php">

<input type="file" name="plik" size="40">


a teraz plik który kopiuje:

[php:1:b22891ce1e]<?
if(is_uploaded_file($HTTP_POST_FILES['plik']['tmp_name'])){
copy($HTTP_POST_FILES['plik']['tmp_name'], "gdzie/".$HTTP_POST_FILES['plik']['name']);
}

?>[/php:1:b22891ce1e]

Działa na 100% i można przerobić dla wielu plików.
Project
Cytat
Natomiast php jest jezykiem SERVER SIDE, czyli nie może zrobić niczego na jakimkolwiek komputerze poza SERWEREM angrysmiley.gif

i tu bym nie zgodzil sie z kolega...
poniewaz php jest server side moze odwolac sie do polecen sytemu operacyjnego i wywolac np funkcje GET
Jezeli funkcje w stylu system, passthru, exec, shel_exec, popen nie sa zablokowane to w latwy sposob mozemy pobrac plik z sieci i zapisac na naszym serwerze (w katalogu w ktorym apache ma prawa zapisu)

PS Wypowiedz odbiegajaca lekko od tematu ale miala sluzyc jako sprostowanie wczesniejszej wypowiedzi

POZDRAWIAM
Pazio
A co jeśli w formularzu chcę podać adres URL np www.pazio.sitenet.pl/pies2.gif i ten pliczek przesłać na serwer pehapem?
spenalzo
Cytat
A co jeśli w formularzu chcę podać adres URL np www.pazio.sitenet.pl/pies2.gif i ten pliczek przesłać na serwer pehapem?


To też było na forum...
[php:1:9fb86ae604]<?php
echo passthru("wget http://www.pazio.sitenet.pl/pies2.gif");
?>[/php:1:9fb86ae604]
BzikOS
Tiaa... a jak na serverze nie ma wgeta? W ogóle nie lubię rozwiązań bazujących na zewnętrznych programach :?
spenalzo
Cytat
Tiaa... a jak na serverze nie ma wgeta? W ogóle nie lubię rozwiązań bazujących na zewnętrznych programach  :?

To jest problem...
Ja próbowałem kopiować plik gif przy pomocy file, fopen/fwrite itd ale nic z tego - plik wynikowy nie dawał się odczytać, dopiero wget pomogło.
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.