- Ako urobiť z linkov v code živé linky (pre Firefox a Operu)
- Volanie zadarmo cez zlatestranky.sk
- Zoznam freehostingov so subdomenami
- Vytvorenie CS 1.6 servera zdarma
- Free SMS cez internet
- Spider-Man: Web of Shadows
- Európski poslanci chcú chrániť deti pred zneužitím na internete
- Facebook hostuje až desať miliárd fotografií
- V USA majú nový anti-pirátsky zákon
- Apple odhalí nové MacBooky 14. októbra
Navigácia
Ako na jednoduchý upload obrázkov v PHP
Tak dnes si ukážem ako si môžete spraviť jednoduchý images upload v PHP. Nejde o nič ťažké. Tak ideme nato.Tak dnes si ukážem ako si môžete spraviť jednoduchý images upload v PHP. Nejde o nič ťažké. Tak ideme nato.
Ako prvý bude súbor index.php. Bude vyzerať takto : <?php require 'upload.php'; require 'config.php'; $im = new imageupload(); if ($_POST['__upload']) { header('location: '.'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF'])); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title><?=$title?><</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div class="wrapper"> <h1><?=$title?></h1> <p>Vyberte obrázok a dajte Upload.</p> <form method="post" enctype="multipart/form-data" action="<?=$im->path?>"> <input type="file" name="__upload" size="72" /> <input type="submit" value="Upload" /> </form> <p><?=$im->allowTypes();?></p> <div class="block"> <? if ($im->_im_status == true) { echo '<h2>Upload Dokončený !</h2> <p class="codes"><label for="codebb">Odkaz pre fóra :</label><br /> <input type="text" size="80" value="[URL='.$im->imgurl.'][IMG]'.$im->imgurl.'[/IMG][/URL]" onclick="javascript:this.focus();this.select();" readonly="true" /><br /> <label for="codehtml">Odkaz pre weby : </label><br /> <input type="text" size="80" value=\'<a href="'.$im->imgurl.'"><img src="'.$im->imgurl.'" alt="Image hosting by '.$title.'" /></a>\' onclick="javascript:this.focus();this.select();" readonly="true" /><br /> <label for="codedirect">Priamy odkaz : </label><br /> <input type="text" size="80" value="'.$im->imgurl.'" onclick="javascript:this.focus();this.select();" readonly="true" /></p>'; } elseif (!empty($im->errorStr)) { echo '<div class="errors">'.$im->errorStr.'</div>'; } ?> </div> <div class="block"> </div> <p class="footer">Developed by <a href="http://www.pcblog.sk" target="_pcblog">pWneD</a></p> </div> </body> </html> Nie je to nič ťažké ide len vlastne o jednoduchý formulár. Ďalej sa pozrieme na súbor config.php. Script bude vyzerať takto : <?php $title = 'Images Upload v PHP l PCblog.sk'; $types = array('jpg', 'gif', 'png'); $maxsize = 1024*1024; $upload_dir = 'uploads/'; $lang['E_TYPE'] = 'Chybný typ obrázku.'; $lang['E_SIZE'] = 'Veľkosť obrázku je dosť veľká'; ?> Tento súbor sme spravili preto aby sme mohli regulovať napr. prípony. Titulok webu atd. Ide vlastne len o premenné v PHP. Ďalej sa pozrieme na súbor upload.php. Script bude vyzerať takto : <?php class imageupload { public $path = ''; public $errorStr = ''; public $imgurl = ''; private $_errors = array(); private $_params = array(); private $_lang = array(); private $_maxsize = 1048576; public $_im_status = false; public function __construct () { require 'config.php'; $this->_types = $types; $this->_lang = $lang; $this->_upload_dir = $upload_dir; $this->_maxsize = $maxsize; $this->path = $PHP_SELF; if (is_array($_FILES['__upload'])) { $this->_params = $_FILES['__upload']; if (function_exists('exif_imagetype')) $this->_doSafeUpload(); else $this->_doUpload(); if (count($this->_errors) > 0) $this->_errorMsg(); } } public function allowTypes () { $str = ''; if (count($this->_types) > 0) { $str = 'Povolené prípony súborov: ('; $str .= implode(', ', $this->_types); $str .= ')'; } return $str; } private function _doSafeUpload () { preg_match('/\.([a-zA-Z]+?)$/', $this->_params['name'], $matches); if (exif_imagetype($this->_params['tmp_name']) && in_array(strtolower($matches[1]), $this->_types)) { if ($this->_params['size'] > $this->_maxsize) $this->_errors[] = $this->_lang['E_SIZE']; else $this->_im_status = true;
if ($this->_im_status == true) { $ext = substr($this->_params['name'], -4); $this->new_name = md5(time()).$ext; move_uploaded_file($this->_params['tmp_name'], $this->_upload_dir.$this->new_name); $this->imgurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']).$this->_upload_dir.$this->new_name; } } else $this->_errors[] = $this->_lang['E_TYPE']; } private function _doUpload () { preg_match('/\.([a-zA-Z]+?)$/', $this->_params['name'], $matches); if(in_array(strtolower($matches[1]), $this->_types)) { if ($this->_params['size'] > $this->_maxsize) $this->_errors[] = $this->_lang['E_SIZE']; else $this->_im_status = true;
if ($this->_im_status == true) { $ext = substr($this->_params['name'], -3); $this->new_name = md5(time()).$ext; move_uploaded_file($this->_params['tmp_name'], $this->_upload_dir.$this->new_name); $this->imgurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace('/\/([^\/]+?)$/', '/', $_SERVER['PHP_SELF']).$this->_upload_dir.'/'.$this->new_name; } } else $this->_errors[] = $this->_lang['E_TYPE']; } function _errorMsg() { $this->errorStr = implode('<br />', $this->_errors); } } ?> Tak tento súbor je trošku zložitejší. Ďalej sa pozrieme na súbor style.css. Script bude vyzerať takto. body { margin:0; font-family:Verdana, arial, sans-serif; font-size:12px; } div.wrapper { margin:0 auto; padding:5px; width:620px; border:1px solid #35528F; } h1 { padding:8px; margin:0px; } div.errors { color:#FF0000; } ul { list-style:none; padding:5px; } ul li { display:inline; padding-right:12px; } p.footer { clear:both; text-align:center; font-size:10px; } div.block { float:left; width:300px; } div.errors { color:red; } Tak to nie je to ťažký súbor. Ešte ku koncu nám chýba jeden súbor. A to na FTP si vytvoríte súbor uploads a CHMOD mu nastavíte na 777. To je všetko ku tomuto článku.
God.Hell |
23. červenece 08, 19:07
Související články
- Ako na Tvorbu webu v HTML (3.) - vkladanie obrázkov (14. červenece 08, 11:07)
- Nezabezpečený Upload: Chyba amatérov ? (29. červenece 08, 17:07)
- Jednoduchý chat v PHP (14. červenece 08, 10:07)
- Jednoduchý fake mailer (14. červenece 08, 10:07)
- C#: Jednoduchý SMTP klient (15. červenece 08, 19:07)
- Jednoduchý popis techniky: JavaScript Injection (23. červenece 08, 15:07)
- Google Chrome - Jednoduchý ale Šikovný (8. září 08, 14:09)