Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload plikow na serwer
Forum PHP.pl > Forum > PHP
Azaghal
mam formulaz z polem typu file. W jaki sposb skopiowac wskazany plik na serwer do okreslonego katalogu ?
steru
<form action=costam.php enctype='multipart/form-data'>
<input type=file name=plik>
<input type=submit value=ok>
</form>
<?
if($plik!='none'){
if(move_uploaded_file($plik,'katalog/'$plik_name))
echo $plik_name.' skopiowany';
else
echo 'dupa z kopiowania";
}
?>
wool
albo

[index.php]

<?
echo("<form enctype="multipart/form-data" action="upload.php" method="post">
Wybierz plik: <input name="userfile" type="file">
<input type="submit" value="Prześlij plik">
</form>
");
?>

[upload.php]

<?php
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
copy($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
} else {
echo "Wystąpił błąd w przesyłaniu : " . $HTTP_POST_FILES['userfile']['name'];
}
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
?>

...from manual php :wink:
shw
wielu osobom te skrypty nie dzialaja.
mam gdzies na hdd funkcje oparta o ftp, ktora prawie zawsze dziala. jest znacznie wieksza itd. no ale jest bardziej niezawodna.
SonGoace
Skopiowałem ten skrypt do siebie. Gdy wybieram plik i daje ok to przechodzi do upload.php i tu pojawia sie błąd

Warning: Unable to create 'cyfry.gif': Permission denied in /users/s/songoace997/upload.php on line 3

Warning: Unable to create 'cyfry.gif': Permission denied in /users/s/songoace997/upload.php on line 7

Warning: Unable to move '/tmp/phpARNhgN' to 'cyfry.gif' in /users/s/songoace997/upload.php on line 7

co znaczy? czemu jest źle?
steru
na katalog do ktorego chcesz wrzucic te pliki ustaw prawa 0777
SonGoace
<?php
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
copy($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
} else {
echo "Wystąpił błąd w przesyłaniu : " . $HTTP_POST_FILES['userfile']['name'];
}
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
?>

a gdzie tutaj wpisać nazwe katalogu ?
steru
zaloguj sie ftpem na konto i zmien prawa dostepu do katalogu na read, write i execute dla wszystkich czyli 0777
chyba , ze skryptem sobie zalozysz katalog - funkcja mkdir() to juz nie trzeba bedzie mieszac w uprawnieniach
SonGoace
To jak zmieniac uprawnienia to wiem tongue.gif
ale pytałem gdzie w tym skrypvie wpisuje nazwe katalogu do którego ma byćuploadowany plik questionmark.gif?
SonGoace
Mam jeszcze problem z Chmod !
<?
chmod ("/banery/admin.php3", 0755);
?>

to znajduje sie w pliku ace.php. Jak na niego wchodze wyskakuje błąd.

Warning: chmod failed: No such file or directory in /home/accounts_d/dbnews/public_html/ace.php on line 3

a w manualu znalazłem takie coś:
"Notatka: Ta funkcja nie jest dostępna na platformie Windows."
SonGoace
znalazłem błąd. zła ścieżka dostępu, ale mimo to wyskakuje
Warning: chmod failed: Operation not permitted in /home/accounts_d/dbnews/public_html/ace.php on line 3

i jeszcze to z funkcją mkdir - tez nie działa

<?
mkdir ("dir", 0700);
?>
a daje taki skrypt
bartek
Cytat
albo

[index.php]

<?
echo("<form enctype="multipart/form-data" action="upload.php" method="post">
Wybierz plik: <input name="userfile" type="file">
<input type="submit" value="Prześlij plik">
</form>
");
?>

[upload.php]

<?php  
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
 copy($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
} else {
   echo "Wystąpił błąd w przesyłaniu : " . $HTTP_POST_FILES['userfile']['name'];
}
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$HTTP_POST_FILES['userfile']['name']);
?>

...from manual php :wink:


A jak zrobic zeby wywalalo komunikat o tym ze plik juz istnieje?
Mistycus
Cytat
A jak zrobic zeby wywalalo komunikat o tym ze plik juz istnieje?
Kod
$nazwa_pliku=$HTTP_POST_FILES['userfile']['name'];

if(file_exists($HTTP_POST_FILES['userfile']['name'])){

    echo 'Plik o nazwie '.$HTTP_POST_FILES['userfile']['name'].' już istnieje!';

};
Ja bym proponował jednak zamiast wyświetlania komunikatu zmienić nazwę pliku.
bartek
Zmiana nazwy pliku odpada bo pozniej musze podac ta nazwe w formlarzu.
castor
Cytat
znalazłem błąd. zła ścieżka dostępu, ale mimo to wyskakuje  
Warning: chmod failed: Operation not permitted in /home/accounts_d/dbnews/public_html/ace.php on line 3

i jeszcze to z funkcją mkdir - tez nie działa

<?
mkdir ("dir", 0700);
?>
a daje taki skrypt


na jakim systemie?
bartek
Cytat
znalazłem błąd. zła ścieżka dostępu, ale mimo to wyskakuje  
Warning: chmod failed: Operation not permitted in /home/accounts_d/dbnews/public_html/ace.php on line 3

i jeszcze to z funkcją mkdir - tez nie działa

<?
mkdir ("dir", 0700);
?>
a daje taki skrypt

Ja przez FTP zrobilem CHMODE na 777 i dziala.
wool
Cytat
a gdzie tutaj wpisać nazwe katalogu ?

copy($HTTP_POST_FILES['userfile']['tmp_name'],"ścieżka");
Musi być także ustawiony tymczasowy katalog w php.ini upload_tmp_dir= i przede wszystkim file_uploads = On. Ten skrypt działa na 100%.
wool
Cytat
A jak zrobic zeby wywalalo komunikat o tym ze plik juz istnieje?

Najlepiej przed if wstawić funkję sprawdzającą obecność takiego pliku. Wyświetlanie komunikatu raczej nie ma sensu. Lepsza by była automatyczna zmiana nazwy pliku. Coś dziś wymyślę dla obu wariantów i zaieszczę na forum.
Mistycus
Cytat
Cytat
A jak zrobic zeby wywalalo komunikat o tym ze plik juz istnieje?

Najlepiej przed if wstawić funkję sprawdzającą obecność takiego pliku. Wyświetlanie komunikatu raczej nie ma sensu. Lepsza by była automatyczna zmiana nazwy pliku. Coś dziś wymyślę dla obu wariantów i zaieszczę na forum.
Czyżby mój skrypt był niedobry :?:
wool
Ups, nie zauważyłem. Ale zobaczę :wink:
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.