PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Failide üleslaadimine
Postitaja: Raul 2015-06-04 08:51:59
Tehtud selline asi, kus laen tekstifaili üles,
vastavalt failisisule toimub failitöötlus php-s ja
sisestatakse mysql andmebaasi.
Tulemuse saan pärast andmebaasist.
See asi töötab üks fail korraga.

Soov seda asja teha mitut faili üles laadides.
Selleks hakkasin uurima kuidas mitut faili üles laetakse.
Leidsin sellise juhendi

Juhendis lõpupoole näide. Ühe faili üleslaadimine töötab, aga
mitme failiga ei tööta. Milles võib viga olla? Ja kas tegutsen üldse õiges suunas?

Vorm

PHP kood:
 
<form enctype="multipart/form-data" action="upload.php" method="POST">
    <
input type="file" name="pilt" />
    <
input type="submit" value="lae pilt" />
</
form>

<
form enctype="multipart/form-data" action="upload.php" method="POST">
    <
input type="file" name="pilt[]" multiple/>
    <
input type="submit" value="lae mitu pilti" />
</
form>


ja upload.php

PHP kood:
 
<?php
$allowedExts 
= array("jpg""jpeg""gif""png");
$allowedTypes = array("image/gif""image/jpeg""image/png""image/pjpeg");
$extension end(explode("."$_FILES['pilt']["name"]));
$bytes100000;
$loc "images";

if (
in_array($_FILES['pilt']["type"], $allowedTypes) && ($_FILES['pilt']["size"] < $bytes) && in_array($extension$allowedExts) ) {
    
// fail õiget tüüpi ja suurusega

    
if ($_FILES['pilt']["error"] > 0) {
        echo 
"faili üleslaadimine luhtus, veakood: " $_FILES['pilt']["error"];
    } else {

        if ( 
file_exists("$loc/" $_FILES['pilt']["name"]) ) {
            
// samanimeline fail on kaustas $loc olemas ära uuesti lae, prindi failinimi

            
echo "fail $loc/".$_FILES['pilt']["name"]." juba eksisteerib";
        } else {
            
// kõik ok, aseta pilt kausta $loc

            
move_uploaded_file($_FILES['pilt']["tmp_name"], $loc."/" $_FILES['pilt']["name"]);
            echo 
"faili ".$_FILES['pilt']["name"]." laadmine kausta $loc edukas";
        }
    }
} else {
    echo 
"Fail ei ole sbivat tüüpi või on vales mõõtmes";
?>





Viimati muudetud: 04-06-2015 08:54:36
Muutja: Raul
Põhjus:

RE: Failide üleslaadimine
Postitaja: Raul 2015-06-04 12:27:14
TSITEERITUD:


PHP kood:
 
    
echo "Fail ei ole sbivat tüüpi või on vales mõõtmes";
?>


Lõpust jäi } sulg puudu

PHP kood:
 
 
echo "Fail ei ole sbivat tüüpi või on vales mõõtmes";
// see sulg jäi enne puudu!
?>


Viimati muudetud: 04-06-2015 12:27:59
Muutja: Raul
Põhjus:

RE: Failide üleslaadimine
Postitaja: einohharumaeisaa 2015-06-04 22:36:10
kas googlest oled midagi kuulnud? Miks sa uurid selliseid nurgataguseid kohti?
https://www.google.ee/search?client=safari&rls=en&q=php+multiple+file+upload&ie=UTF-8&oe=UTF-8&gws_rd=cr&ei=O6hwVZ2DF8WSsAHThoLgDw

RE: Failide üleslaadimine
Postitaja: blaa 2015-06-05 10:38:35
et kirjutame suvalist koodi kokku ja imestame, et ei tööta...

Vorm peaks olema selline
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="file" name="pilt[]" />
<input type="file" name="pilt[]" />
<input type="file" name="pilt[]" />
<input type="submit" value="lae mitu pilti" />
</form>


Kui on üks pilt, ehk name="pilt", siis $_FILES['pilt'] on massiiv selle pildi andmetest.
Kui on mitu pilti, ehk name="pilt[]", siis $_FILES['pilt'] on natuke tesistmoodi massiiv, igale atribuudile vastab massiiv iga pildi vatavast väärtusest.

Alustada võiks manuaalist
http://php.net/manual/en/features.file-upload.post-method.ph
RE: Failide üleslaadimine
Postitaja: Raul 2015-06-14 22:06:49
TSITEERITUD:
kas googlest oled midagi kuulnud? Miks sa uurid selliseid nurgataguseid kohti?
https://www.google.ee/search?client=safari&rls=en&q=php+multiple+file+upload&ie=UTF-8&oe=UTF-8&gws_rd=cr&ei=O6hwVZ2DF8WSsAHThoLgDw


Googlest olen otsinud, aga polnud sellist leidnud mida ma oleks osanud tööle saada.
Aga igatahes teie poolt antud lingit teine valik sobis mulle.

Vormi tegin nii:

PHP kood:
 
<form enctype="multipart/form-data" action="upload.php" method="POST">
Vali faile: <input type="file" name="upload[]" multiple="multiple"/>
    <
input type="submit" value=" Lae " />
</
form


upload.php ise selline

PHP kood:
 
<?php
//Loop through each file
for($i=0$i<count($_FILES['upload']['name']); $i++) {
  
//Get the temp file path
  
$tmpFilePath $_FILES['upload']['tmp_name'][$i];

  
//Make sure we have a filepath
  
if ($tmpFilePath != ""){
    
//Setup our new file path
    
$newFilePath "./uploadFiles/" $_FILES['upload']['name'][$i];

    
//Upload the file into the temp dir
    
if(move_uploaded_file($tmpFilePath$newFilePath)) {

      
//Handle other code here

    
}
  }
}
?> 

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0893800258636