Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Snacker téma: Upload fotografií

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 01.06.2009 16:30

Dovoľte si aby som v tejto téme, ktorá bola už mnoho krát spomenutá predniesol základný princíp uploadu na server. Samozrejme s úskaliami a nástrahami, ktoré zo sebou nesie. Upload súborov robím po prvýkrát a váhal som, či uviesť ďalší príspevok na túto tému, pretože ako som si listoval v sekcií PHP,ASP našiel som ich veľmi veľa. No na druhú stranu ma povzbudil fakt, že ako som si otváral témy a snažil sa s chuťou načerpať nové vedomosti našiel som po väčšine ako sa hovorí “trhance” alebo odkazy, kde bol vysvetlený základný princíp ale samozrejme nulová bezpečnosť. Práve preto budem rád, keď sa podelíte so svojimi skúsenosťami a spoločne vytvoríme kvalitný kód.

Na začiatok sa zmienim o tom, že ak chcete nahrávať na server musíte mať zvolený priečinok s CHMOD 777 inak sa Vám začnú zobrazovať chyby typu:
Warning: move_uploaded_file(/var/www/ ...
Nastavíte si ho veľmi jednoducho: napr. vo FileZille kde na Váš priečinok kliknete pravým tlačítkom a zvolíte atribúty súboru a v kolónke číselne nastavíte hodnotu 777.
Ak Vám ani napriek tomuto nastaveniu nepôjde upload treba ešte skontrolovať save_mode v súbore php.ini. Ja ho mám v /etc/php5/apache2/php.ini (distribúcia Ubuntu). Bližšie informácie a konfigurácie nájdete napr. na Google.

Ja sa zameriam na upload fotografií, konkrétne zmena fotografie užívateľa z anonymnej na jeho konkrétnu.(ale samozrejme si môžete skript prispôsobiť podľa chuti) Chcel by som aby bolo možné uploadnuť iba jeden formát fotografie (image/jpeg), ďalej aby bolo možné nahrať na server fotografiu do veľkosti 300kB a dobré by bolo ak by fotografie menili svoj názov poradovo (1, 2, 3…) z prostého dôvodu. Ak na server nahráte fotku rovnakého názvu starú fotografiu jednochudo prepíše, čo by mohlo spôsobovať problémy ak by nám dvaja rôzny ľudia nahrali na server fotografiu s názvom napr. 001.jpg ten prvý by mal asi smolu.

Pre takúto registráciu fotografií budeme potrebovať vytvoriť tabuľu v databáze, ktorá bude mať dva stĺpce. 1. stĺpec bude poradové číslo fotografií, čiže každá fotografia bude jedinečný identifikátor podľa neho sa bude prideľovať aj názov fotografie a
druhý stĺpec bude v mojom prípade meno uploadera, ktoré si prenášam cez SESSION. Tieto fotografie si budem overovať a ak budú spĺňať požiadavky cestu ku fotke z profilu užívateľa zmením z anonymnej na tú, ktorú si uploadol.
(Neviem či je to dobrý spôsob, no ak by ste mali návrhy na niečo sofistikovanejšie treba napísať. Ako vravím upload robím prvý krát)

Tu je návrh tabuľky:
Kód:
CREATE TABLE `profil`.`vlastne_foto` (
`id` BIGINT NOT NULL,
`nick` VARCHAR( 31 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM


Formulár bude vyzerať veľmi jednoducho:
Kód:
<form action="upload3.php" enctype="multipart/form-data" method="post">
Vyber fotografiu:<br />
<input type="file" name="fotografia" value"" /><br />
<br />
<input type="submit" name="nahrat" value="Nahrať na server">
</form>


A tu už máme samotný PHP skript, ktorý sa bude nachádzať na rovnakej stránke ako formulár. Sú k nemu poznámky tak treba prečitať, pochopiť a poprípade vylepšiť.

Kód:
<?php
if (isset($_POST['nahrat'])){
/* Nastavenie max. velkosti suboru v Bytoch */
$max_velkost = 310000;


$nick = $_SESSION['prezyvka'];


$server = "***";
$username = "***";
$password_databaza = "***";

@mysql_connect($server, $username, $password_databaza) or die("Nemozem nadviazat spojenie s databazou!");
@mysql_select_db('profil') or die("Nemozem nadviazat spojenie s databazou!");

$query = "SELECT id FROM vlastne_foto";
$result = mysql_query($query);
$poradie = mysql_numrows($result);
$nazov = $poradie + 1;


/* Nastavime konstantu */
define ("FILEREPOSITORY", "/var/www/foto/");

/* Presvedci sa, ci bol subor nahrany cez POST */
if (is_uploaded_file($_FILES['fotografia']['tmp_name'])) {

/* Ulozime si do premennej format uploadnuteho suboru */
$image_format = $_FILES['fotografia']['type'];

/* JE nas pozadovany typ suboru formatu JPG ? */
if ($image_format != "image/jpeg")
   echo "Nezadali ste pozadovany format fotografie!";
/* Overme jeho velost  v Bytoch */
else if ($_FILES['fotografia']['size'] > $max_velkost)
   echo "Max. velkost fotografie moze byt 300kB!";
/* Ak je vsetko ako ma uploadneme subor na server */
else {
$result = move_uploaded_file($_FILES['fotografia']['tmp_name'], FILEREPOSITORY."/$nazov.jpg");
if ($result == 1) {
   echo "<p>Subor bol uspesne uploadnuty!</p>";
   $res = mysql_query("
INSERT INTO `profil`.`vlastne_foto` (
`id` ,
`nick`
)
VALUES (
'$nazov', '$nick'
)") or die(mysql_error());
}   
else
   echo "<p>Subor sa nepodarilo uploadnut!</p>";
}
}
}
?>


To je všetko ku tejto téme. V ďalšom mojom príspevku môžem názorne ukázať autentizáciu (ktorú som už robil :) )

Ďakujem


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. galéria fotografii

v HTML, XHTML, XML, CSS

6

716

22.02.2008 0:45

Matho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PC na úpravu fotografií

v PC zostavy

6

562

28.09.2021 14:02

branik94 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Notebook na prezentáciu fotografií

v Notebooky a netbooky

6

664

04.06.2019 21:14

MartinR2U2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Program na pomenovanie fotografii

v Grafické programy

4

533

09.02.2010 18:06

Seth Sparrow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. notebook na úpravu fotografií

v Notebooky a netbooky

8

758

18.03.2009 10:16

pacinko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. script na ohodnotenie fotografii

v JavaScript, VBScript, Ajax

5

748

01.03.2009 21:11

l0vel Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Program na triedenie fotografii

v Grafické programy

20

3341

11.12.2018 13:58

Joeyeti Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Atramentová tlaciaren (tlač fotografii)

v Externé zariadenia

5

690

06.08.2017 16:54

Ivan-K Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Externy HDD na zalohu fotografii

v Úložné zariadenia

5

462

19.12.2014 17:29

kllr007 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Notebook úprava fotografii do 2k

v Notebooky a netbooky

11

464

10.09.2020 14:42

zRudo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stolný počítač na úpravu fotografií

v PC zostavy

3

541

08.10.2019 17:50

jakubko4ever Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Aplikácia pre skrytie fotografií - Android

v Ostatné operačné systémy

1

343

09.02.2022 15:22

tatko Tom Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Notebook na úpravu fotografií cca 1200€

v Notebooky a netbooky

7

503

22.06.2021 18:31

Semp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. monitor na upravu fotografii cca 200€

v Monitory, televízory a projektory

9

673

02.01.2017 20:41

ambrosko1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Záchrana fotografii z telefonu SGH-U600

v Ovládače

9

654

26.06.2010 14:48

M@Xo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. procesor a doska pre upravy fotografii

v PC zostavy

5

382

19.03.2015 19:25

romikles Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  
cron

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra