nahratie obrazkov na web bez upravy stranky

Programovacie jazyky, rady, poradňa...
nejdeoto
Expert
Expert
Používateľov profilový obrázok
Príspevky: 195
Registrovaný: 23 máj 2006, 22:39
Bydlisko: Beluša
Kontaktovať používateľa:

nahratie obrazkov na web bez upravy stranky

Príspevok od používateľa nejdeoto »

akoby sa dalo urobi bez databazy ze vymeenim alebo pridam obrazky na web bez aktualizacie stranky... oiba nieco akouploadovaci skript, ktory automaticky prida na stranku fotku
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

nejak takto napr

index.php

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>images</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="2097150" />
    <input type="hidden" name="uploadok" value="yes" />
    Upload file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" /> (max. 2MB)
</form>
<?
 if (IsSet($_REQUEST["err"])) $err=$_REQUEST["err"];
 else  $err=0;
 if($err=='') $err=0;

switch($err){
 case 1: echo "Upload OK"; break;
 case 2: echo "Upload failed!!!"; break;
 case 3: echo "Subor je prilis velky"; break;
 case 4: echo "Zly typ suboru. Povolene su obrazky typu: jpg, gif a png."; break;
 default: break;

}
?>
<hr width="100%">
<?
$dir = "./images/";

if (is_dir($dir)) {
   if ($dh = opendir($dir))
   {
     while (false !== ($file = readdir($dh)))
     {
        if ($file!='.' && $file!='..' && $file!='thumb'){
         echo '<img src="'.$dir.$file.'" class="gallery" alt="'.$file.'" /><br><br>';
        }
     }
     closedir($dh);
   }
}
?>

</body>
</html>
upload.php

Kód: Vybrať všetko

<?php
if (IsSet($_REQUEST["MAX_FILE_SIZE"])) $maxfilesize=$_REQUEST["MAX_FILE_SIZE"];
else  $maxfilesize=0;
if($maxfilesize=='') $maxfilesize=0;

if (!$maxfilesize) $maxfilesize=2097152;  // max velkost v Bytoch ... nastavene na 2 MB
$kam_to_kopnut = './images/';  //da sa  zmenit na './upload/'  napr ale dany adresar MUSI EXISTOVAT

if (!IsSet($_FILES['userfile']))
           Header("Location: ./index.php?err=2");
else
if (IsSet($_POST['uploadok']) && ($_POST['uploadok']=='yes')) {


    if ($_FILES['userfile']['size'] > $maxfilesize)
    {
      unlink($_FILES['userfile']['tmp_name']);
      Header("Location: ./index.php?err=3");
    }
    else
    {

      $ok=false;
      $mime = $_FILES["userfile"]["type"];
         $name  = $_FILES["userfile"]["name"];
         $array = explode(".", $name);
         $ext  = $array[count($array)-1];

      if($mime=="image/jpeg" || $mime=="image/pjpeg") {
         if($ext=="jpg" || $ext=="jpeg")
           $ok = true;
      }

      if($mime=="image/gif"){
         if($ext=="gif")
           $ok = true;
      }

      if($mime=="image/png") {
         if($ext=="png")
           $ok = true;
      }

       // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
       // of $_FILES.

     if($ok)
     {
        $uploadfile = $kam_to_kopnut.basename($_FILES['userfile']['name']);

        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
           Header("Location: ./index.php?err=1");
        } else {
           Header("Location: ./index.php?err=2");
        }
     }
     else
     {
       Header("Location: ./index.php?err=4");
     }

   }
}
else
           Header("Location: ./index.php?err=2");
?>
dufam ze to funguje .. robil som to davno ..
a btw nezabudni vytvorit adresar "images" s pravami na zapis
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

aky prikaz mam pouzit aby som vytvoril adresar pre zapis ?? hladal som na php.net ... nasiel som mkdir() ale neviem ake tam mam dat cislo aby to vytvaralo adr pre zapis ... tie cisla su napisane aj na php.net ale skusil som vsetky a nejde mi to ... :?
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

sak si ho vytvor v tom kde sa pripajas na server .. total commander .. to je jedno
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

:) ... hej ale potrebujem aby tie aresare mohli vytvarat useri a do nich vkladat foto .... vsetko cez admin ....
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

etel napísal::) ... hej ale potrebujem aby tie aresare mohli vytvarat useri a do nich vkladat foto .... vsetko cez admin ....
tak potom cez mkdir a druhy parameter 0777 ..
pripadne este to nastavit cez umask(0777);

ale ani to ti nemusi ist na 100% ... dakedy mi to slo az ked som to nastavil rucne v TC
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

gwixt napísal:tak potom cez mkdir a druhy parameter 0777 ..
pripadne este to nastavit cez umask(0777);

ale ani to ti nemusi ist na 100% ... dakedy mi to slo az ked som to nastavil rucne v TC
Nechcel si napísať umask(0)?
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

chrono napísal:Nechcel si napísať umask(0)?
nie, preco?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

gwixt napísal:nie, preco?
Cez umask sa zadávajú práva, ktoré sa nemajú nastavovať (čiže napr. keď je umask 0022 príkaz mkdir(0777) vytvorí adresár s právami 0755).
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

chrono napísal:Cez umask sa zadávajú práva, ktoré sa nemajú nastavovať (čiže napr. keď je umask 0022 príkaz mkdir(0777) vytvorí adresár s právami 0755).
njn sry ... :oops:
radsej teda pouzit chmod("adresar", 0777); po jeho vytvoreni
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Toto je z php.net:

Kód: Vybrať všetko

<?php 
 $oldumask = umask(0); 
 mkdir('mydir', 0777); // or even 01777 so you get the sticky bit set 
 umask($oldumask); 
?>
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

mam tento kod :

Kód: Vybrať všetko

$nazov_adr = "ban_132x123";
	mkdir("banners/".$nazov_adr);
	$oldumask = umask(0);
 	mkdir("banners/".$nazov_adr, 0777); // or even 01777 so you get the sticky bit set
 	umask($oldumask);
a vy pisuje mi toto:
Warning: mkdir(banners/ban_111x111): Permission denied in /new_usr/virtualhosts/.../bsystem/addons/file/page_cats.php on line 6

Warning: mkdir(banners/ban_111x111): Permission denied in /new_usr/virtualhosts/.../bsystem/addons/page_cats.php on line 8
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Adresár banners existuje a má práva na zapisovanie?

PS: odstráň riadok

Kód: Vybrať všetko

mkdir("banners/".$nazov_adr);
je tam nadbytočný.

// chrono: Adresár banners existuje a má práva na zapisovanie? :)
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

odstranil som a vypisuje mi uz len toto ,,,

Kód: Vybrať všetko

Warning: mkdir(banners/ban_111x111): Permission denied in /new_usr/virtualhosts/.../bsystem/addons/page_cats.php on line 8
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

ja ten adresar potrebujem vytvorit ... niekto zada do input nazov a vytvory sa adresar s takym nazvom ....
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Dám príklad:
Skript na vytvorenie adresára (ten php súbor čo vytvára adresár) je v aresári addons/.
Ty chceš vytvoriť adresár v addons/banners/ban_111x111
Adresár banners v tom adresári addons existuje a má správne práva? Alebo chceš vytvoriť aj ten adresár banners?
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

ten adresar banners ma dobre prava ... da sa mi dohno uploadovat cez TC ...
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

na to aby ti vytvaranie suborov a adresarov spolahlivo fungovalo potrebujes jednak spravny skript a v nemalej miere aj spravne nakonfigurovany server .. ak tam raz bezi PHP v safe mode alebo nieco podobne tak to proste nespravis
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

gwixt napísal:nejak takto napr
mozte mi niekto prepisat tie kody aby tam bolo aj povolene JPG? diky
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

lucas03 napísal:mozte mi niekto prepisat tie kody aby tam bolo aj povolene JPG? diky
jpg tam povolene je
Napísať odpoveď