Natrag   Forum.hr > Informatička tehnologija > Internet > Web development

Web development Programiranje, dizajn, hosting i sve ostalo vezano uz razvoj web siteova

Odgovor
 
Tematski alati Opcije prikaza
Old 20.02.2017., 13:57   #1
PHP upload više datoteka odjednom

Pozdrav.
Prije svega novi sam u svemu ovome.

Zadatak mi je napisati kod u kojem korisnik prvo odabire koliko datoteka želi uploadati, nakon toga mu se pokazuje toliko opcija za upload i kada klikne submit sve se uploadaju istovremeno.

<form method="POST">
<label>Broj datoteka:</label>
<input type="number" name="quantity" min="1" max="5">
<br><br>
<input type="submit" name="submit" value="U redu">
</form>

Ovo je taj intro.
Mislio sam preko switch/case napraviti da ga preusmjeri na .php u kojem je odgovarajući kod za broj datoteka, međutim to bi značilo 5 dodatnih .php fileova, svaka sa svojim kodom, nešto tipa:

$broj = $_REQUEST['quantity'];

if(isset($_REQUEST['quantity'])){
switch($broj){
case 1:
include 'upload_1-php';
break;
case 2:
include 'upload_2.php';
break;
}
}
itd.

Problem je što mi ovdje izbacuje notice da je 'quantity' u $broj undefined index, iako normalno preusmjerava na recimo upload_2.php ako korisnik izabere 2.

E sad, uopće ne kontam kako da uploada 2 ili više datoteke odjednom
DreamerNeon is offline  
Odgovori s citatom
Old 20.02.2017., 22:24   #2
Prvo, nemoj koristiti $_REQUEST. Ako radiš POST, koristi $_POST.

Drugo, ako je dopušteno korištenje JS-a, onda prvi korak možeš odraditi JS-om (pošalješ formu s 5 inputa za file, ali js-om prikažeš samo prvih).

Ako ne, onda na osnovu broja vrtiš for petlju i u svakoj iteraciji petlje u html ubaciš po jedan file input kojem naziv generiraš pomoću indexa kojeg koristiš u petlji (npr name="file_<php echo $i; >"). Možeš staviti i name="files[]", ali ti to daje rezultat kompleksniji za iteraciju kod uploada. U prvoj, jednostavnijoj varijanti, možeš u formu ubaciti i hidden input kojim ćeš poslati broj inputa koje imaš.
MrBlc is offline  
Odgovori s citatom
Old 20.02.2017., 23:38   #3
HTML Code:
$broj = $_REQUEST['quantity'];

if(isset($_REQUEST['quantity'])){
switch($broj){
Izbacije ti gresku jer "$broj = $_REQUEST['quantity'];" pozivas i u slucaju da ne postoji.. promjeni kod u..

HTML Code:
if(isset($_REQUEST['quantity'])){
$broj = $_REQUEST['quantity'];
switch($broj){
__________________
I could die for you. But I couldn't, and wouldn't, live for you.
little-big-one is offline  
Odgovori s citatom
Old 30.03.2017., 23:34   #4
PHP kompresija file-a

Pozdrav, imam problem sa upload-njem slike na server, točnije slika se uplouda ali u punoj rezoluciji što uzrokuje brzo "trpanje" memorije. Jel postoji kakav način da se nekako kompresira prije spremanja ta ista slika npr sada jedna slika ima 3MB što je malo previše jer sa vremenom bit ce ih puno. Malo sam gledao i naisao sam na PHP funkciju "imagejpeg()" pokusao sam s njom ali i dalje slika ima 3MB. Evo kak izgleda dio koda
Kod:
 
list($width_min,$height_min)=getimagesize($slika); // fetching original image width and height
         		
         	$newwidth_min=350; // set compressing image width

         	$newheight_min=($height_min / $width_min) * $newwidth_min; // equation for compressed image height

         	$tmp_min = imagecreatetruecolor($newwidth_min, $newheight_min); // create frame  for compress image

         	imagecopyresampled($tmp_min, $src, 0,0,0,0,$newwidth_min, $newheight_min, $width_min, $height_min); // compressing image

         	imagejpeg($tmp_min,"Slike/".$slika,50); //copy image in folder//

         move_uploaded_file($_FILES['slika']['tmp_name'],$target);
Nisam siguran na kraju da li ova funkcija zaista bi trebala smanjit memoriju ili ne , ili jednostavno negdje griješim..
dado228 is offline  
Odgovori s citatom
Old 31.03.2017., 07:24   #5
Ti po ovome kreiraš thumbnail od slike, u folderu Slike.

Međutim, ako ne želiš spremiti originalnu sliku, onda ti je linija move_uploaded_file($_FILES['slika']['tmp_name'],$target); suvišna.
MrBlc is offline  
Odgovori s citatom
Old 01.04.2017., 14:16   #6
Quote:
MrBlc kaže: Pogledaj post
Ti po ovome kreiraš thumbnail od slike, u folderu Slike.

Međutim, ako ne želiš spremiti originalnu sliku, onda ti je linija move_uploaded_file($_FILES['slika']['tmp_name'],$target); suvišna.



Meni je cilj da smanjim veličinu slike tako da uštedim na memoriji kad se sprema na server. Da pokušao sam bez move_uploaded_file() funkcije ali onda uopće ne želi uploudati sliku, provjerio sam da li sam točno postavio "path" za spremanje preko imagejpeg() i to je ok.
dado228 is offline  
Odgovori s citatom
Old 02.04.2017., 21:09   #7
move_uploaded_file premješta original i taj poziv ti stvarno ne treba ako ne želiš sačuvati original.

Što se tiče spremanja thumba, sve ove funkcije ti vraćaju true or false ovisno je li uspjelo, pa možeš testirati gdje zapne. Za putanju bih ti preporučio da pokušaš s apsolutnom, ili staviš __DIR__."/slike/".$filename.'.'.$ext
MrBlc is offline  
Odgovori s citatom
Odgovor



Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 11:01.