Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP:n file() -ongelma

Sivun loppuun

Wotson [31.01.2007 17:26:46]

#

Minulla on eräässä kouluprojektissa pienoinen ongelma PHP:n file -funktion kanssa. Seuraavassa koodipätkässä haetaan txt -tiedosto tmp -kansioon ja käytetään siihen file -funktiota.
Kaikki toimii hyvin, kunhan tiedosto haetaan projektin pääkansiosta. Ongelmia ilmenee, kun tiedosto haetaan mistä tahansa muusta paikasta.

Miten file -funktion saisi viittaamaan oikeaan kansioon/tiedostoon? Olen yrittänyt kaikenlaista, mutta tuloksetta. Olen yrittänyt viitata siihen myös suoraan "http://localhost:8080/....", mutta sama ongelma pysyy. Ratkaisu on varmasti yksinkertainen, mutta tämä tyhmä pääni ei sitä ymmärrä.

Edit.
File -funktio antaa arvon "false", vaikka haluttu txt -tiedosto on siirtynyt tmp -kansioon ja sen sisältö on ihan oikein.

<?php
if(!empty($_POST['upload']))
  {
    $target_path = "./tmp";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "Tiedosto ".  basename( $_FILES['uploadedfile']['name']).
    " on lisätty <br>";
} else{
    echo "Tapahtui virhe, yritä uudelleen!";
}
  $size = filesize($_FILES['uploadedfile']['name']);

  // Luetaan tiedosto taulukkoon

        // tämä on se ongelma
  $tiedosto = file("./tmp" . basename( $_FILES['uploadedfile']['name'])) ;
?>

Mod edit. kooditagit

Newb [31.01.2007 17:50:21]

#

Virheilmoituksia?

GoldenDragon [31.01.2007 17:53:49]

#

Olisi nimittäin hyödyksi meille tietää, mitä ongelmat ovat ja tuleeko virheilmoituksia - jos tulee niin mitä. :)

Wotson [31.01.2007 18:02:46]

#

GoldenDragon kirjoitti:

Olisi nimittäin hyödyksi meille tietää, mitä ongelmat ovat ja tuleeko virheilmoituksia - jos tulee niin mitä. :)

Virheilmoituksia tulee yksi eli file -funktio antaa arvon "false". Eli se ei sitä tiedostoa löydä.

ajv [31.01.2007 18:07:26]

#

Auttaisko, jos tuohon $target_path = "./tmp"; laittaisi kenon perään ja antaisit file()-funktiolle tuon $target_path-muuttujan parametriksi?

Wotson [31.01.2007 18:31:53]

#

ajv kirjoitti:

Auttaisko, jos tuohon $target_path = "./tmp"; laittaisi kenon perään ja antaisit file()-funktiolle tuon $target_path-muuttujan parametriksi?

Mielenkiintoista. Kun tein nuo mainitsemasi muutokset, niin nyt se toimii "melkein" oikein.

Muutokset:

$target_path = "./tmp/";
$tiedosto = file($target_path );

Tällä hetkellä file -funktio etsii tiedostoa /projekti -kansiosta, eikä /projekti/tmp -kansiosta. Eli jos tiedosto tai sen kopio sattuu olemaan projekti -kansiossa, niin homma toimii. Muuten ei. Pienestä se on kuitenkin kiinni.

ajv [31.01.2007 20:50:12]

#

Toimisko

<?php
$target_path = "./tmp/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
//tähän väliin kaikki tuo muu mitä tuossa teet...
$tiedosto = file($target_path);
?>

?

tsuriga [31.01.2007 20:57:49]

#

.=

ajv [31.01.2007 21:03:37]

#

tsuriga kirjoitti:

.=

Saivartelua... :)

tsuriga [01.02.2007 12:42:40]

#

nakki = nakki + nakinjatke on niin BASICkiä :S.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta