modificare functie upload

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

modificare functie upload

multumesc mult de tot. merge foarte bine. 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

trif Mesaje:500
salut, am combinat un 2 scripturi si imi merge in mare parte dar am ceva mici nemultumiri. aici este codul pe care l-am modificat:

Cod: Selectaţi tot

<?php
       if(isset($_POST['submit']))
       {
       $upload = "../cantari/diverse/";        // Directorul unde incarca fisierele
       $denumire=$_POST['denumire'];
       $data=$_POST['data'];
       $data = date("d-m-Y");
       $categoria='diverse'; 
       $descarca=$uploadpath. basename( $_FILES['urlf']['name']);
// Aici este setata marimea maxima, in KiloBytes, care este permisa (dar marime maxima depinde si de setarile serverului)
$max_size = 500;
// Aici puteti schimba tipul, extensia fisierelor permise pt. upload
$allowtype = array('ppt', 'pps');
if(isset($_POST['submit'])) {
  if (isset ($_FILES['fup'])) {
    $uploadpath = $uploadpath . basename( $_FILES['fup']['name']);
	$type = end(explode(".", strtolower($_FILES['fup']['name'])));
    // Daca fisierul are extensia permisa
    if (in_array($type, $allowtype)) {
	  // Verifica daca fisierul are marimea permisa
	  if ($_FILES['fup']['size']<=$max_size*1000) {
        if(move_uploaded_file($_FILES['fup']['tmp_name'], $uploadpath)) { 
          echo "Fisierul:<b> ". basename( $_FILES['fup']['name']). "</b> a fost incarcat cu succes:"; 
		   $addemail="Insert into cantari_ppt(denumire, data,  categoria, urlf) values('$denumire', '$data', '$categoria','$uploadpath')";
           mysql_query($addemail) or die("NU se poate adauga!");
           print "<br>Cantarea adaugata!  <a href='adaugare.php'>Inapoi la adaugare!</a>";
        }
        else { 
          echo "<b>A aparut o eroare la urcarea fisierului pe server, <br /> posibil ca marimea fisierului sa depaseasca permisiunile setate de server.</b>"; 
        }
	  }
	  else { echo 'Fisierul <b>'. $_FILES['fup']['name']. '</b> depaseste marimea permisa de maxim <i><b>'. $max_size. 'KB</b></i>'; }
    }
	else { echo 'Fisierul <b>'. $_FILES['fup']['name']. '</b> nu are tipul de extensie permis'; }
  }
}
}
    ?>
si problema este urmatoarea:
1. atunci cand inserez nu imi insereaza cum trebuie, imi insereaza valoarea lui

Cod: Selectaţi tot

$upload = "../cantari/diverse/";
adica ../cantari/diverse/ si mie imi trebuie ../cantari/diverse/cantare.ppt, intrebarea este, cum combin ca sa imi dea ../cantari/diverse/cantare.ppt.
2. te uiti sa vezi daca este combinat ok ca a fost faza cand fisierul a fost copiat in folder dar in bd nu a fost adaugat.
3. dupa ce uplodez un fisier imi pune in bd si in folder dar daca ii dau reflesh mi-l mai adauga o data si tot asa imi adauga de cate ori dau reflesh, cum sa fac ca sa nu mai mi-l adauge ci sa imi zica ca trebuie sa aleg un fisier ca sa pot adauga, dar sa nu fie cu cod de acela de securitate.
cam atat pt moment. 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
1. Nu imi dau seama de ce insereaza valoarea lui $upload, fiindca la query-ul pt. insert e setat sa adauge $uploadpath
2. Ca sa nu adauge iar la refresh, se poate astfel:
- Inainte de a face Upload, verifici o sesiune care sa contina numele fisierului incarcat, daca acesta e deja in sesiune, afisezi mesajul, altfel, efectueaza instructiunile pentru upload si insert, iar dupa Insert se adauga in acea sesiune numele fisierului.

trif Mesaje:500
am facut cum ai zis dar tot nu merge. uite asa:

Cod: Selectaţi tot

       if(isset($_POST['submit']))
       {
	   if(isset($_SESSION['denumire'])){
	   echo 'introducere dubla';}
	   else {
       $upload = "../cantari/diverse/";        // Directorul unde incarca fisierele
       $denumire=$_POST['denumire'];
       $data=$_POST['data'];
       $data = date("d-m-Y");
       $categoria='diverse'; 
       $descarca=$uploadpath. basename( $_FILES['urlf']['name']);
// Aici este setata marimea maxima, in KiloBytes, care este permisa (dar marime maxima depinde si de setarile serverului)
$max_size = 500;
// Aici puteti schimba tipul, extensia fisierelor permise pt. upload
$allowtype = array('ppt', 'pps');
if(isset($_POST['submit'])) {
  if (isset ($_FILES['fup'])) {
    $uploadpath = $uploadpath . basename( $_FILES['fup']['name']);
   $type = end(explode(".", strtolower($_FILES['fup']['name'])));
    // Daca fisierul are extensia permisa
    if (in_array($type, $allowtype)) {
     // Verifica daca fisierul are marimea permisa
     if ($_FILES['fup']['size']<=$max_size*1000) {
        if(move_uploaded_file($_FILES['fup']['tmp_name'], $uploadpath)) { 
          echo "Fisierul:<b> ". basename( $_FILES['fup']['name']). "</b> a fost incarcat cu succes:"; 
         $addemail="Insert into cantari_ppt(denumire, data,  categoria, urlf) values('$denumire', '$data', '$categoria','$uploadpath')";
           mysql_query($addemail) or die("NU se poate adauga!");
           print "<br>Cantarea adaugata!  <a href='adaugare.php'>Inapoi la adaugare!</a>";
        }
        else { 
          echo "<b>A aparut o eroare la urcarea fisierului pe server, <br /> posibil ca marimea fisierului sa depaseasca permisiunile setate de server.</b>"; 
        }
     }
     else { echo 'Fisierul <b>'. $_FILES['fup']['name']. '</b> depaseste marimea permisa de maxim <i><b>'. $max_size. 'KB</b></i>'; }
    }
   else { echo 'Fisierul <b>'. $_FILES['fup']['name']. '</b> nu are tipul de extensie permis'; }
  }
}
}
}
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
Incearca, dupa ce definesti $uploadpath = ...;
if(isset($_SESSION['uploadpath']) && $_SESSION['uploadpath']==$uploadpath) { echo 'Refresh'; }
else { ... }

- in cadru lui "else" trebuie adaugat liniile de cod pt. efectuare upload si insert.
Iar dupa linia de Insert in mysql, adaugi:
$_SESSION['uploadpath']=$uploadpath;
asta face True conditia "if()" de mai sus cand se da refresh.

- Daca nu intelegi cum se face asta, incearca sa gasesti o solutie proprie, care sa stii tu cum actioneaza.

trif Mesaje:500
salut, dupa o mica perioada am revenit iara la acest script de upload care tot nu reusesc sa il fac, aici este form-ul

Cod: Selectaţi tot

<form action="adaugare.php" method="post" id="idf" enctype="multipart/form-data">
 Upload file: <input type="file" name="fup" onchange="checkName(this, 'fname', 'submit')" /><br />
 Denumire fisier: <input type="text" value="" name="denumire" id="fname" /><br />
 <input type="submit" name="submit" id="submit" value="Submit" disabled="disabled" />
</form>
aici este javascript-ul prin care se ia numele fisierului

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>
si aici este codul php pentru upload

Cod: Selectaţi tot

<?php 
$uploadpath = "../cantari/colinde/"; 
$denumire=$_POST['denumire'];
$data=$_POST['data'];
$data = date("d-m-Y");
$categoria='diverse'; 
$allowtype = array('ppt');
if(isset($_POST['submit'])) {
  if (isset ($_FILES['fup'])) {
    $urlf=$uploadpath. basename( $_FILES['descarca']['name']);
	$type = end(explode(".", strtolower($_FILES['fup']['name'])));
    // Daca fisierul are extensia permisa
    if (in_array($type, $allowtype)) {
	  if(strlen($denumire)<1)
         {
           print "Nu este nici o cantare!";
         }
         else
         {
       if(move_uploaded_file($_FILES['descarca']['tmp_name'], $urlf))  {
              echo "Cantarea:<b> ". basename( $_FILES['descarca']['name']). "</b> a fost incarcat cu succes.";
        }
           $addemail="Insert into cantari_ppt(denumire, data, urlf, categoria) values('$denumire', '$data', '$urlf', '$categoria')";
           mysql_query($addemail) or die("NU se poate adauga!");
           print "<br>Cantarea adaugata!  <a href='adaugare_carte_rosie.php'>Inapoi la adaugare!</a>";
         }
		 }
       } 
	else { echo 'Fisierul <b>'. $_FILES['fup']['name']. '</b> nu are tipul de extensie permis'; }}
?>
problema este ca imi zice ca nu adauga. eu am bd asa:

Cod: Selectaţi tot

id -- denumire -- data -- urlf -- categorie 

nu stiu cum sa fac ca sa imi dea asa

Cod: Selectaţi tot

1 -- Intr-un sat ne-nsemnat din Iudea -- 30-07-2010 -- ../cantari/colinde/Intr-un sat ne-nsemnat din Iudea -- colinde
am tot incercat dar tot nu vrea sa mearga nu stiu de ce? 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
Incearca comanda SQL asa:

Cod: Selectaţi tot

"INSERT INTO `cantari_ppt` (denumire, data, urlf, categorie) VALUES ('$denumire', '$data', '$urlf', '$categoria')";
Ori "categorie", ori "categoria", tu stii.

Mai departe, nu am stat sa studiez fisierele, legatura dintre ele, etc.

trif Mesaje:500
salut, am reusit singur sa fac, uite asa:

Cod: Selectaţi tot

<?php 
if(isset($_POST['submit'])) {
$uploadpath = "../cantari/diverse/"; 
$denumire=$_POST['denumire'];
$data=$_POST['data'];
$data = date("d-m-Y");
$categoria='diverse'; 
$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))  {
              echo "Cantarea:<b> ". basename( $_FILES['urlf']['name']). "</b> a fost incarcat cu succes.";
        }
           $addemail="Insert into cantari_ppt(denumire, data, urlf, categoria) values('$denumire', '$data', '$urlf', '$categoria')";
           mysql_query($addemail) or die("NU se poate adauga!");
           print "<br>Cantarea adaugata!  <a href='adaugare_carte_rosie.php'>Inapoi la adaugare!</a>";
         }
		 }
?>
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

Subiecte similare