upload multi fisiere

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

upload multi fisiere

buna ziua,
Am o mica problema si nu stiu cum sa o rezolv.
Am un script de upload fisiere si este pentru un fisier o data dar a intervenit ceva si trebuie sa dau posibilitate de upload mai multe fisiere. Cum as putea sa il modific acest script care merge perfect dar pentru un fisier.
Am urmatoarele scripturi:
1. este codul de insert

Cod: Selectaţi tot

$uploadpath = 'cantari/'.$categoria.'/';  
}
else{
$uploadpath = 'cantari/aprobare/';  
}
$denumire= $_POST['denumire'];
date_default_timezone_set('Europe/Bucharest');
$data=$_POST['data'];
$data = date("Y-m-d H:i:s", time()); 
$allowtype = array('ppt');
$urlf= $uploadpath. basename( $_FILES['urlf']['name']);
 if(strlen($denumire)<1)
         {
           print "Nu este nici o cantare!";
         }
         else
         {
       if(move_uploaded_file($_FILES['urlf']['tmp_name'], $urlf))  {
        }
		//******* baga in BD
		$query = "Insert into cantari_ppt (denumire, data, urlf, categoria, autor) values('{$denumire}', '{$data}', '{$urlf}', '{$categoria}', '{$autor}')";
		mysql_query($query);
				$message = "s-a adaugat";
				$message .='<br/>' . '<a href="adaugare_cantare.php" class="button">Cantare noua</a>';
				$disabled = 'disabled = "disabled"';

			//$message = 'CANTAREA nu a putut fi introdusa sau mai este o data. <br> Va rugam incercati din nou.</p>';
		}
	}
2. este codul pentru form

Cod: Selectaţi tot

<form action="adaugare_cantare.php" method="post" id="idf" enctype="multipart/form-data">
 ÎNCARCĂ FIŞIERUL: <input type="file" name="urlf" onchange="checkName(this, 'denumire', 'submit')"  size="50"/><br><br>
 DENUMIRE FIŞIER: <input type="text" readonly= "true" name="denumire"  id="denumire" size="30">  
        <input type="button" name="btnChkUsername" id="btnChkUsername" value=" Verifica DACA EXISTA! ">
        <div style="color:green; display: none;" name="succMsg" id="succMsg"></div>
        <div style="color:red; display: none;" name="errMsg" id="errMsg"></div>
 <br><br>
Selectaţi CATEGORIA: <select name="categoria" id="categoria" tabindex="55" >
                    	<option value="d"> Alege CATEGORIA </option>
                    	<?php
$sql="SELECT * FROM categorie WHERE permis =1 ORDER BY denumire_categorie ASC"; 
$res=mysql_query($sql);
while($rand=mysql_fetch_array($res)) {
   echo '<option value="' . $rand['cheie'] . '" ';
echo '>' . $rand['denumire_categorie'] . '</option>';
}
 ?>
                        </select> 
*setat --> "DIVERSE"<br>
 <input type="submit" name="submit" id="submit" value=" Adauga cantare " disabled="disabled" />
</form>
3. este scriptul javascript pentru verificari.

Cod: Selectaţi tot

<script type="text/javascript"><!--
var ar_ext = ['ppt'];        // array cu extensiile permise

function checkName(el, to, sbm) {
// - marplo.net
  // preia numele fisierului si separa nume si extensia
  var name = el.value;
  var ar_name = name.split('.');

  // pt. IE - separa directoarele (\) de nume
  var ar_nm = ar_name[0].split('\\');
  for(var i=0; i<ar_nm.length; i++) var nm = ar_nm[i];

  // adauga numele in 'to'
  document.getElementById(to).value = nm;

  // verifica extensia
  var re = 0;
  for(var i=0; i<ar_ext.length; i++) {
    if(ar_ext[i] == ar_name[1]) {
      re = 1;
      break;
    }
  }
  // daca re are valoarea 1, extensia este in list permisa
  if(re==1) {
    // activeaza submit
    document.getElementById(sbm).disabled = false;
  }
  else {
    // sterge numele fisierului, dezactiveaza Submit, afiseaza Alert
    el.value = '';
    document.getElementById(sbm).disabled = true;
    alert('".'+ ar_name[1]+ '" nu este un tip de fisier permis');
  }
}
--></script>
Va rog sa va uitati si ce ar trebui modificat la asta.
Multumesc anticipat.
Cu stima Trif Alexandru
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Salut
Ca sa incarci mai multe fisiere, trebuie ca numele casetei /casetelor pentru fisier sa aiba acelasi nume, cu "[]" la sfarsit ca sa fie adaugate intr-un array, de exemplu: name="urlf[]".
Iar in php, fisierele transmise sunt preluate in ordine din array-ul cu acel nume.
De exemplu:

Cod: Selectaţi tot

$file1 = $_FILES['urlf']['name'][0];
 
- Pe site e un Tutorial Upload mai multe fisiere , cu exemplu, din care se poate invata tehnica de incarcare mai multe fisiere; ca sa modifici /aplici in script.
- De asemenea si acest Script Multi-Uploader pe care-l poti folosi /modifica, sau ca sa-l studiezi sa stii cum se face.

trif Mesaje:500
Salut,
Multumesc de raspuns.
M-am uitat peste scripturile oferite dar nu este ceea ce imi trebuie.
Ceea ce imi trebuie este ca atunci cand deschid sa aleg fisierele sa pot selectea cate vreau NU sa am selectare separata pentru fiecare fisier.
Cum este si pe alte site-uri in care cand vrei sa adaugi ceva img dai "alege fisier" si te lasa sa alegi cate vrei.

Cam asta vreau.
Multumesc anticipat.
Cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Daca vrei sa se poata selecta mai multe fisiere pentru upload in aceeasi caseta de tip "file", se adauga atributul: multiple="multiple" la acea caseta, iar numele ei sa aibe la sfarsit "[]".

Cod: Selectaţi tot

<input type="file" name="urlf[]" size="50" multiple="multiple"/>
In php, fisierele transmise sunt preluate in ordine din array-ul cu numele casetei, cum e in script-urile de la adresele prezentate inainte.

- In acest caz, cand sunt selectate mai multe fisiere, nu va mai functiona cum trebuie acel script javascript pt verificare extensie fisier.

Subiecte similare