Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: upload plików ( tylko grafika )
Forum PHP.pl > Forum > PHP
e4you
witam,

mam taki kod:

[php:1:f1abaf26dc]<?php

$lokalizacja = 'img_prg/'.$plikuzytkownika_name;
if (is_uploaded_file($plikuzytkownika))
{
if (!move_uploaded_file($plikuzytkownika, $lokalizacja))
{
echo '$lang002';
exit;
}
}else{
$plikuzytkownika = '';
}

?>[/php:1:f1abaf26dc]

jak go zmienić żeby było można zprecyzować jakie pliki mają być akceptowane i wysyłane na serwer i zeby po wysłaniu zmienił nazwę pliku na znacznik daty ( time(); ) aby uniknąc powtarzania się plików
cinnek
Napisałem kiedys cos takiego moze ci sie przyda
[php:1:21d120ae66]<?php
function pobranieZdjecia($userfile,$userfile_name,$userfile_size,$userfile_type,$i_pesel)
{
if($userfile=="none")
{echo "Brak pliku do wczytania";exit;}
if($userfile_size==0)
{echo "Plik ma zerową długość";exit;}

$wsk =1;

$nazwa = $i_pesel."_0.jpg";

while (file_exists("zdjecia/".$nazwa) )
{
$wsk++;
$nazwa = $i_pesel."_".$wsk.".jpg";

}



$upfile="zdjecia/".$nazwa;

if ( !copy($userfile,$upfile))
{
echo "Nie można przenieść pliku do katalogu";exit;
}
return $upfile;

}
?>[/php:1:21d120ae66]

$i_pesel to identyfikator uzytkownika , zdjecia zamieniane sa na nazwy i_pesel_X.jpg gdzie X to to liczba całkowita. Funkcja zwraca sciezke do pliku. Jak dobrze pamietam to wszystkie parametry userrfile** dostajesz po pobraniu pliku.
Spike
[php:1:ab85236a41]<?php

if($_FILES['plikuzytkownika']['type'] == 'image/pjpeg') {
$rozszezenie = 'jpg';
}
elseif ($_FILES['plikuzytkownika']['type'] == 'image/gif') {
$rozszezenie = 'gif';
}
elseif ($_FILES['plikuzytkownika']['type'] == 'image/png') {
$rozszezenie = 'png';
}
else {
$rozszezenie = 'error';
echo "Nieprawidłowy format pliku, dozwolone tylko PNG, JPG i GIF";
exit;
}
$roz=$rozszezenie;
srand((double) microtime()*1000000);
$naz=md5(uniqid(rand()));
$url="$naz.$roz";
$folder = "/home/users/www/www";
move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'],
$_SERVER['DOCUMENT_ROOT/'].($folder)."/".$url);

$g="/home/users/www/www/$url";
if (file_exists($g))
{
echo "Plik wysłano
}
else
{
echo "Pliku nie wysłano problem z połączeniem.";
exit;
}


?>[/php:1:ab85236a41]

finkcja file_exists(); sprawdza czy plik został wysłany i czy jest na serwerze


Dodatkowo funkcja md5(); nadaje unikalna nazwe plikowi w postaci losowego ciagu znaków - skrypt ten kiedys napisałem mam nadzieje ze sie komuś przyda dodatkowo do skryptu jeszce mam dowawanie obrazków do bazy mysql

[sql:1:ab85236a41]$zapytanie = "INSERT INTO img (cl,url,nazwa,artykul,x,y) VALUES('$cl' , '$url' , '$nazwa' , '$artykul' , '$x' , '$y' )"; [/sql:1:ab85236a41]

Gdzie tabela ma strukture

Kod
CREATE TABLE `img` (

  `id` smallint(3) NOT NULL auto_increment,

  `url` varchar(50) NOT NULL default '',

  `x` varchar(5) default NULL,

  `y` varchar(5) default NULL,

  PRIMARY KEY  (`id`)

) TYPE=MyISAM AUTO_INCREMENT=1;
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.