Pagina 1 din 1
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Vin Ian 16, 2015
de adrian_ady
In prezent se poate incarca numai o poza pentru fiecare user. Se incarca imaginea si se redenumeste. Cum fac sa se poata incarca mai multe foto (adica sa aiba o logica in redenumire ca sa fie distincte) si sa pot seta numarul maxim de imagini ce pot fi uploadate?
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Sâm Ian 17, 2015
de MarPlo
Poti utiliza functia glob().
Vezi cum poti folosi acest exemlu:
Cod: Selectaţi tot
$files = glob('dir/*.jpg'); // array cu toate fisierele JPG din "dir/"
$nrf = count($files); // numarul de fisiere gasite
// daca sunt mai putin de 4 fisiere
if($nrf < 4) {
$file = 'dir/nume'. ($nrf + 1) .'.jpg'; // setare nume cu numar de ordine pt urmatorul fisier
// Incarca fisierul ...
}
else echo 'Sunt 3 fisiere incarcate';
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Sâm Ian 17, 2015
de adrian_ady
Linia de upload folosita in prezent:
Cod: Selectaţi tot
$upload->uploadImageNoResizeRenameWidthHeight('file',"foldere/furnizori/id_".$login->getMemberId()."","id_".$_GET['id'],512000,array("jpeg"),120,90);
Am facut cateva incercari dar nu am 'brodit-o'. Asa ar trebui sa devina linia($file = 'dir/nume'. ($nrf + 1) .'.jpg';)?:
Cod: Selectaţi tot
$upload->uploadImageNoResizeRenameWidthHeight('file',"foldere/furnizori/id_".$login->getMemberId()."","id_".$_GET['id']."-".($nrf+1),512000,array("jpeg"),120,90);
Asa arata clasa Upload
Cod: Selectaţi tot
// upload imagine gif sau jpg fara redimensionare cu redenumire si cu conditia sa aiba anumita latime si inaltime
public function uploadImageNoResizeRenameWidthHeight($file,$cale,$rename,$maxsize,$allow_extension,$w,$h)
{
//$file = numele imputului de tip file
//$cale = calea pozei pe server fara slash la sfarsit
//$rename = numele nou al pozei
//$maxsize = dimensiumea maxima a fisierului permisa
//$allow_extension = extensii permise array("jpeg","/gif")
$file_name = $_FILES[$file]['name'];
$file_type = $_FILES[$file]['type'];
$file_size = $_FILES[$file]['size'];
$tip = substr($file_type,-4);
@list($w1,$h1) = getimagesize($_FILES[$file]['tmp_name']);
if($file_size > $maxsize) // daca e mai mare decat dimensiunea maxima
{
$this->mess = "Dimensiunea maxima permisa este ".($maxsize/25600)." Kb";
}
else if(!in_array($tip,$allow_extension))
{
$this->mess = "Acest format de fisier nu este permis";
}
else if(($w1 != $w) && ($h1 != $h))
{
$this->mess = "Va rugam sa uploadati imagine de <b>".$w." x ".$h." pixel</b>";
}
else if (file_exists($cale.'/'.$file_name)) // daca fisierul neredenumit exista in director
{
$this->mess = "Acest fisier exista deja";
}
else
{
if($tip == "jpeg") $ext = "jpg";
if($tip == "/gif") $ext = "gif";
if($tip == "flash") $ext = "swf";
$new_name = $rename.'.'.$ext;
$new_path = $cale.'/'.$new_name;
if(file_exists($cale.'/'.$new_name))
{
$this->mess = "Acest fisier exista deja";
}
else
{
move_uploaded_file($_FILES[$file]['tmp_name'], $cale.'/'.$new_name);
chmod($new_path,0777);
$this->filename = $new_name;
$this->mess = "";
}
}
}
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Sâm Ian 17, 2015
de MarPlo
Apelarea metodei din acea clasa pare in regula.
Poate ca nu e definita bine variabila $nrf cu numarul de poze din director.
Cod: Selectaţi tot
$files = glob('foldere/furnizori/id_'. $login->getMemberId() .'/*.jpg');
$nrf = count($files); // numarul de fisiere gasite
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Dum Ian 18, 2015
de adrian_ady
Am reusit pana la urma sa uploadez imaginile, am schimbat clasa, calea, etc. Problema apare cand se doreste sa se stearga unele fotografii sau cand se alege una din ele ca fiind cea care va fi expusa prima(in mesajul succint).
Cu formula 'Adauga foto', sa zicem din intamplare caci era varianta pentru upload numai o imagine, merge bine; cu cea pentru stergere insa nu functioneaza nimik. Eu m-am straduit, am facut ce am crezut dar fara rezultate; acum apelez din nou la un expert.
Cod: Selectaţi tot
//INCARCARE (IN HEAD)
if(isset($_POST['Upload']))
{
$cale = "foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id'];
$files = glob($cale . "/*.jpg");
if ($files)
$count = count($files);
$total_entries = $count / 2;
$upload = new Upload();
if($_GET['addfoto']=='foto')
$upload->uploadImageThumbRenameResize('file',"foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id'],($total_entries + 1),512000,500,113,array("jpeg"));
if($upload->getMessage()) $mesaj_upload = '<br>'.$upload->getMessage();
else header('Location: '.$_SERVER['PHP_SELF']);
//UPLOAD SI STERGERE
<div id="divupload" style="display:<? if(isset($_GET['addfoto'])) echo 'block'; else echo 'none';?>; margin: 0 auto; max-width: 500px;">
<form action="" method="post" enctype="multipart/form-data">
<p class="error"><?=$mesaj_upload?></p>
<span class="mic-gri">Incarcati numai imagini format .jpg 135 x 96 px, maxim 20Kb.
[<a nohref="javascript://" onClick="getElementById('divupload').style.display='none'" style="cursor: pointer;"><b> <i class="fa fa-close"></i> </b></a>]</span>
<input name="file" type="file" class="inputcol" id="file" style="max-width: 300px;" />
<button class="buton" name="Upload" id="Upload" onclick="document.formName.submit();"><i class="fa fa-upload"></i> Upload</button>
</form>
<br />
</div>
//---------------------------
<a style="cursor: pointer;" onClick="location.href='<?=$_SERVER['PHP_SELF']?>?addfoto=foto&id=<?=$id?>'" style="cursor:pointer;">Adauga foto</a>
<br /><br />
<a style="cursor: pointer;" onClick="location.href='<?=$_SERVER['PHP_SELF']?>?deletefoto=foto&id=<?=$id?>'">Sterge foto</a>
//DISPLAY FOTO
<?
$cale = "foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$id;
$files = glob($cale . "/*.jpg");
if ($files)
$count = count($files);
{
?>
<div class="gallery" id="gallery-small">
<?
$total_entries = $count / 2;
$limit = $total_entries;
$start_img = 1;
for($i=$start_img; $i<min($total_entries + 1, ($start_img + $limit)); $i++) {
echo '<a href="'.$cale.'/'. $i .'_big.jpg" rel="gallery" name=".$i."><img src="'.$cale.'/'. $i .'_small.jpg" alt=" '. $i .' " title="Imagine '. $i .'" /></a>';
}
?>
<br /><br />
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#gallery-small a').fancybox();
});
</script>
<?
}
?>
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Dum Ian 18, 2015
de MarPlo
Partea de sters un anumit fisier din director, cand sunt mai multe e mai complicata. Trebuie creat un fel de FileManager
La clic pe un buton /Link se afiseaza intr-o fereastra fisierele /imaginile din director, apoi la clic pe imagine se adauga cu javascript numele ei intr-un input-hidden, iar la click pe un buton Submit se acceseaza scriptul php de stergere, care sa preia numele din acel Input.
Asta e ideea, pe partea de cod nu ma bag sa fac eu.
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Mar Ian 20, 2015
de adrian_ady
Imi dau seama de complicitatea functiei. Am optat pentru a sterge cate o imagine(small + big) pe click, incepand cu ultima adaugata($last). Cum formulez valoarea $last?
Cod: Selectaţi tot
if(isset($_POST['Upload']))
{
$cale = "foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id'];
$files = glob($cale . "/*.jpg");
if ($files)
$count = count($files);
$total_fotos = $count / 2;
if($_GET['addfoto']=='foto')
$upload = new Upload();
$upload->uploadImageThumbRenameResize('file',"foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id'],($total_fotos + 1),512000,800,566,array("jpeg"));
if($upload->getMessage()) $mesaj_upload = '<br>'.$upload->getMessage();
else header('Location: '.$_SERVER['PHP_SELF']);
}
if(isset($_GET['deletefoto']))
{
$last= ???
{
$cale_small = "foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id']."/".$last."_small.jpg";
$cale_big = "foldere/furnizori/id_".$login->getMemberId()."/oferta_id_".$_GET['id']."/".$last."_big.jpg";
if(file_exists($cale_small)) unlink($cale_small);
if(file_exists($cale_big)) unlink($cale_big);
}
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Mar Ian 20, 2015
de MarPlo
Daca ai cate 2 tipuri ale aceleiasi imagini (small si big), preiei cu glob() fisierele si imparti numarul la 2.
Incearca asa:
Incarcare numar maxim de poze in director, cu nume ordonate
Scris: Mar Ian 20, 2015
de adrian_ady
Merci, am inteles ideea, am rezolvat! Multumesc!