Probleme cu Upload

Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.
maximmus_k
Mesaje: 9

Probleme cu Upload

Va salut. Am un site si doresc sa folosesc scriptul de upload ca vizitatorii sa incarce materiale(poze) pe aceasta pagina. Am citit toate materialele si explicatiile de pe acest sit dar nu mi-a iesit. Sunt incepator in PHP si nu cunosc limbajul si modul de lucru. Am descarcat de pe saitul d-voastra scripturile de upload , deasemenea serverul Wamserver am urmat instructiuniile dar nu am reusit .Trebuie sa mentionez ca saitul meu este in lucru, deci nu este postat pe hosting dar doresc sa fac un test.Daca aveti rabdare cu mine si imi explicati cum pot face asta adica ce trebuie modificat in structura PHP.Am introdus codul si scriptul in pagina HTML , le-am pus pe server in dir www , dar imi apare o erore.

Cod: Selectaţi tot

<?php
/***   Script de la:   https://marplo.net/php-mysql/   ***/

$updir = 'upload';		// Directorul pt. upload
$max_size = 500;			// Marimea maxima, in KiloBytes, care este permisa

// Seteaza matricea cu tipurile de fisiere permise
$allowtype = array('bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

// Creaza directorul din $updir (cu CHMOD 077), daca nu exista
if (!is_dir($updir)) mkdir($updir, 0777);

/** Incarcarea imaginii pe server **/

$rezultat = array();
// Daca este primit din formular un fisier valid
if (isset ($_FILES['file_up'])) {
  // Seteaza pt. upload fisierele primite (pot fi primite din mai multe campuri 'file_up')
  for($f=0; $f<count($_FILES['file_up']['name']); $f++) {
    // Verifica daca fisierul are tipul de extensie permis
	$type = end(explode(".", strtolower($_FILES['file_up']['name'][$f])));
    if (in_array($type, $allowtype)) {
      // Verifica daca fisierul are marimea permisa
	  if ($_FILES['file_up']['size'][$f]<=$max_size*1000) {
        // Daca nu sunt erori in procesul de copiere
        if ($_FILES['file_up']['error'][$f]==0) {
	      // Seteaza locatia si numele pt. incarcare pe server
          $thefile = $updir . "/" . $_FILES['file_up']['name'][$f];
          // Daca fisierul nu poate fi incarcat, returneaza mesaj
          if (!move_uploaded_file ($_FILES['file_up']['tmp_name'][$f], $thefile)) {
            $rezultat[$f] = ' Fisierul nu a putut fi copiat, incercati din nou';
          }
          else {
            // Retine numele fisierului incarcat
		    $rezultat[$f] = '<b>'.$_FILES['file_up']['name'][$f].'</b>';
          }
        }
      }
	  else { $rezultat[$f] = 'Fisierul <b>'. $_FILES['file_up']['name'][$f]. '</b> depaseste marimea permisa de maxim <i>'. $max_size. 'KB</i>'; }
    }
    else { $rezultat[$f] = 'Fisierul <b>'. $_FILES['file_up']['name'][$f]. '</b> nu are tipul de extensie permis'; }
  }

   // Returneaza rezultatul
  $rezultat2 = implode('<br /> ', $rezultat);
  echo '<h4>Fisiere incarcate:</h4>'.$rezultat2;
}
?>
ca de exemplu
". basename( $_FILES['fisiere']['imagini']). " a fost incarcat cu succes:"; echo "
Tipul fisieului: ". $_FILES['fisiere']['type'] .""; echo "
Marime (in Bytes): ". $_FILES['fisiere']['size'] ."

"; echo 'Link catre fisierul incarcat: http ://'". $_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$uploadpath.''; } else { echo "A aparut o eroare la urcarea fisierului pe server,
posibil ca marimea fisierului sa depaseasca permisiunile setate de server."; } } else { echo 'Fisierul '. $_FILES['fisiere']['name']. ' depaseste marimea permisa de maxim '. $max_size. 'KB'; } } else { echo 'Fisierul '. $_FILES['fisiere']['name']. ' nu are tipul de extensie permis'; } } } ?>
Am incercat toate setarile explicate pe acest forum..si nu mi-a iesit.Daca putetisa ma ajutati , v-as fi recunoscator.
(am pus in dir serverului(www): photo.html si folderul folderul Imagini care contine imaginile si CSS pt pagina HTML).
Nu am reusit sa setez CHMOD la dir Upload. :(

MarPlo Mesaje: 4343
Fisierul in care e scris cod PHP trebuie sa aibe extensia ".php" (de ex. "photo.php").
- Daca lucrati pe windows, nu e nevoie de setari CHMOD (nici nu are).

maximmus_k Mesaje: 9
nu merge...poate nu am explicat eu cum trebuie inainte sau nu am inteles.Deci o sa incerc sa fiu mai explicit. Pe una din paginile saitului(photo.html) doresc sa am optiunea de upload.am inserat scriptul de form in codul HTMl apare pe pagina respectiva. Acum, in directorul www am introdus urmatoarele: pagina respectiva (photo.html) si cele doua fisiere de upload descarcate de pe saitul dvs. (uploader.php , upload.js) . Daca fac fisierul photo.php, imi apare tot scriptul in pagina cand o deschid...deci dilema e mare.Sper sa nu stresez prea mult si sa rezolv problema.Multumesc anticipat

MarPlo Mesaje: 4343
Ca PHP sa proceseze informatiile dintr-un fisier .php, acesta trebuie deschis prin adresa serverului, adica, in cazul de fata, in browser trebuie scrisa adresa https://marplo.net/uploader.php

maximmus_k Mesaje: 9
da...m-am grabit sa postez nelamurirea, intre timp am remediat problema si am modificat si intrebarea dar deja am vazut ca mi-ai raspuns...multumesc mult . O ultima intrebare si cu asta promit ca nu mai deranjez, este de fapt cea mai de sus, Se poate face transferul automat din folderul unde stocheaza pozele, pe pagina sau trebuie sa operez manual treaba asta. Daca da cum pot face asta?. Scuze pentru deranj.

MarPlo Mesaje: 4343
Depinde ce vrei sa faci.
Daca vrei sa afiseze pozele incarcate in acel moment, se inlocuieste codul:

Cod: Selectaţi tot

// Retine numele fisierului incarcat
$rezultat[$f] = '<b>'.$_FILES['file_up']['name'][$f].'</b>';
CU:

Cod: Selectaţi tot

// Retine numele fisierului incarcat
$rezultat[$f] = '<img src="'.$thefile.'" />';
Daca vrei sa afiseze toate pozele din directorul unde sunt incarcate, trebuie alt script care sa scaneze acel director si sa faca pt. fiecare imagine tag html IMG.

maximmus_k Mesaje: 9
Multumesc pentru ajutor, functioneaza totul. Incerc sa fac cat mai putin deranj dar daca voi mai intampina probleme mai apelez . Cu stima, Cristian

Subiecte similare