|
|
|
|
|
|
|
|
forum.webPC.pl
|
|
|
|
Rejestracja ::
Zaloguj
|
Zaloguj się, by sprawdzić wiadomości
|
|
|
|
Upload plików na serwer |
> Zobacz poprzedni temat :: Zobacz następny temat --> |
Autor |
Wiadomość
|
pampper |
Wysłany: Wto Kwi 18, 2006 12:55 pm Temat postu: Upload plików na serwer |
|
|
Młodzieniec
Dołączył: 02 Mar 2006 Posty: 32
|
mam prośbę mogłbys mi pomóc, chce zeby moj skrypt upload przesyłał na serwer tylko pliki jpg i gif, zeby był bezpieczny od prób zawirusowania jakims exe albo innym skryptem. Ten skrypt jest pobrany z www.webpc.pl "Simple Upload"
<?php
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "upload_files/";
$upload_url = $url_dir."/upload_files/";
$message ="";
//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("upload_files")) {
die ("upload_files directory doesn't exist");
}
if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
else {
$message = "Invalid File Specified.";
}
print $message;
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;
//File Name Check
if ( $file_name =="") {
$message = "Invalid File Name Specified";
return $message;
}
//File Size Check
else if ( $file_size > 70000) {
$message = "The file size is over 500K.";
return $message;
}
//File Type Check
else if ( $file_type == "text/plain" ) {
$message = "Sorry, You cannot upload any script file" ;
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
$message = ($result)?"File url <a href=$file_url>$file_url</a>" :
"Somthing is wrong with uploading a file.";
return $message;
}
?>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
Upload Image<input type="file" id="userfile" name="userfile">
<input type="submit" name="upload" value="Upload">
</form> |
|
Powrót do góry |
|
|
Admin |
Wysłany: Wto Kwi 18, 2006 2:53 pm Temat postu: |
|
|
Admin strony i forum
Dołączył: 17 Kwi 2005 Posty: 708 Skąd: Reda
|
Ja bym to zrobił po swojemu:
Stworz plik wyslij.html:
Kod: |
<html>
<head>
<title>Wwysyłanie plików</title>
</head>
<body>
Wysyłanie plików:
<form enctype="multipart/form-data" action="wyslij.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Załaduj ten plik:<input name="plikuzytkownika" type="file">
<input type="submit" value="Wyślij">
</form>
</body>
</html>
|
W linii
Kod: |
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
|
ustaw zamiast 1000000 maksymalny rozmiar pliku. Uwaga! Wartośc ma być podana w bajtach!
Stworz plik wyslij.php
Kod: |
<html>
<head>
<title>Wysyłanie</title>
</head>
<body>
Wysyłanie pliku...
<?php
if ($_FILES['plikuzytkownika']['error'] > 0)
{
echo 'Problem: ';
switch ($_FILES['plikuzytkownika']['error'])
{
case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
case 3: echo 'Wyslano tylko czesc pliku'; break;
case 4: echo 'Nie wysłano pliku'; break;
}
exit;
}
// sprawdzanie typu
if ($_FILES['plikuzytkownika']['type'] != 'image/gif || $_FILES['plikuzytkownika']['type'] != 'image/jpeg')
{
echo 'Plik nie jest plikiem graficznym (gif/jpeg)';
exit;
}
// umieszczenie pliku
$lokalizacja = '/wyslane/'.$_FILES['plikuzytkownika']['name'];
if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
{
if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
{
echo 'Problem: Plik nie może być skopiowany do katalogu';
exit;
}
}
else
{
echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
echo $_FILES['plikuzytkownika']['name'];
exit;
}
echo 'Plik wysłany';
?>
</body>
</html>
|
|
|
Powrót do góry |
|
|
pampper |
Wysłany: Sro Kwi 19, 2006 6:57 pm Temat postu: |
|
|
Młodzieniec
Dołączył: 02 Mar 2006 Posty: 32
|
zrobilem to co napisales i w momencie kiedy klikam yslij plik na serewe pojawia sie taki komunikat:
Parse error: parse error, unexpected T_STRING in /home/z1781/public_html/kap/wyslij.php on line 24 |
|
Powrót do góry |
|
|
Admin |
Wysłany: Sro Kwi 19, 2006 7:12 pm Temat postu: |
|
|
Admin strony i forum
Dołączył: 17 Kwi 2005 Posty: 708 Skąd: Reda
|
Zapomniałem o jednym znaku ' w lini 24
Poprawny (chyba) kod:
Kod: |
<html>
<head>
<title>Wysyłanie</title>
</head>
<body>
Wysyłanie pliku...
<?php
if ($_FILES['plikuzytkownika']['error'] > 0)
{
echo 'Problem: ';
switch ($_FILES['plikuzytkownika']['error'])
{
case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
case 3: echo 'Wyslano tylko czesc pliku'; break;
case 4: echo 'Nie wysłano pliku'; break;
}
exit;
}
// sprawdzanie typu
if ($_FILES['plikuzytkownika']['type'] != 'image/gif' || $_FILES['plikuzytkownika']['type'] != 'image/jpeg')
{
echo 'Plik nie jest plikiem graficznym (gif/jpeg)';
exit;
}
// umieszczenie pliku
$lokalizacja = '/wyslane/'.$_FILES['plikuzytkownika']['name'];
if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
{
if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
{
echo 'Problem: Plik nie może być skopiowany do katalogu';
exit;
}
}
else
{
echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: ';
echo $_FILES['plikuzytkownika']['name'];
exit;
}
echo 'Plik wysłany';
?>
</body>
</html>
|
|
|
Powrót do góry |
|
|
pampper |
Wysłany: Sro Kwi 19, 2006 9:06 pm Temat postu: |
|
|
Młodzieniec
Dołączył: 02 Mar 2006 Posty: 32
|
a teraz jak wysyłam gif lub jpg to wyskakuje wysyłanie pliku...plik nie jest plikiem graficznym(jpeg/gif) |
|
Powrót do góry |
|
|
Admin |
Wysłany: Czw Kwi 20, 2006 7:12 am Temat postu: |
|
|
Admin strony i forum
Dołączył: 17 Kwi 2005 Posty: 708 Skąd: Reda
|
a ładuje go na serwer?
Sorry za takie zamieszanie, ale pisałem go na sucho - na forum - nie sprawdzałem
PS: Dla folderu ustaw chmod 777 |
|
Powrót do góry |
|
|
|
|
|
|
Strona 1 z 1 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|
|
|
|
|
|
|
|
|
|