Liittyy taulukko-kirjoitukseen

Liittyy vielä edelliseen tehtävään osittain ainakin.

Minulla on lomake, missä annetaan linkin teksti ja tiedosto, joka tallennetaan palvelimelle.Teksti tallennetaan tietokantaan. Asia on kunnossa. Mutta tulostus ulos tökkii.

Miksi kyseinen koodi tulostaa annetut linkit ja vie upload-kansioon mutta ei osaa valita tiedostoa. Koodi:

do {

for($i = 0; $i < count($a); $i ){

$filelist .= "" . $a[$i]."";
}
}

while(!is_dir($file) && !is_link($file));

Eli upload_dir on palvelimella oleva kansio, johon tiedostot tallennetaan. File käsitellään komennolla

$handle=opendir($upload_dir);
$file = readdir($handle);
3244
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

*while(!is_dir($file) && !is_link($file));*
Mitä tämän on tarkoitus tehdä?

!is_dir($file) == $file ei ole hakemisto
!is_link($file) == $file ei ole tiedosto

Ei while looppia tuommoseen käytetä sitä varten on ehto lauseet.

if (!is_dir($file) && !is_link($file)){

}


*
$handle=opendir($upload_dir);
$file = readdir($handle);

*

Sul on ihan perusteet hukas.
Linkkiin ainoostaan linkki tiedostoon ei itse tiedoston sisältöä.

kokeiles vaik näin
echo readfile($upload_dir$file);



Vai ymmärsinkös jotain väärin?

Äänestä
  • Totta on, että meni palikat täysin sekasin ku kokeilin vaikka mitä. Eli nyt on ensin

    while ($teksti_tulostus = mysql_fetch_row($kysely))
    {
    $a[] = $teksti_tulostus[1];
    }

    Sitten

    $handle=opendir($upload_dir);

    while ($file = readdir($handle)) {
    if(!is_dir($file) && !is_link($file)) {
    for($i = 0; $i < count($a); $i ){


    $filelist .= "" .$a[$i] ."";

    }
    }

    Tuo toimii hyvin, jos tallentaa vain yhden tiedoston. Mutta jos tallentaa useamman, tulostuu aina tiedoston nimet peräkkäin, joista linkki samaan tiedostoon.

    Esimerkiksi tiedoston nimet 1.jpg ja 2.jpg

    12 -> 1.jpg
    12 -> 2.jpg

    Tarviin varmaan katkaista jotenkin looppi?

    Äänestä

  • MSPM kirjoitti:

    Totta on, että meni palikat täysin sekasin ku kokeilin vaikka mitä. Eli nyt on ensin

    while ($teksti_tulostus = mysql_fetch_row($kysely))
    {
    $a[] = $teksti_tulostus[1];
    }

    Sitten

    $handle=opendir($upload_dir);

    while ($file = readdir($handle)) {
    if(!is_dir($file) && !is_link($file)) {
    for($i = 0; $i < count($a); $i ){


    $filelist .= "" .$a[$i] ."";

    }
    }

    Tuo toimii hyvin, jos tallentaa vain yhden tiedoston. Mutta jos tallentaa useamman, tulostuu aina tiedoston nimet peräkkäin, joista linkki samaan tiedostoon.

    Esimerkiksi tiedoston nimet 1.jpg ja 2.jpg

    12 -> 1.jpg
    12 -> 2.jpg

    Tarviin varmaan katkaista jotenkin looppi?

    Aaltosulku jäi tosta pois. Siis otsikoksi annetaan nimet 1 ja 2.

    Äänestä

Kommentoi aloitusta


MSPM kirjoitti:

Liittyy vielä edelliseen tehtävään osittain ainakin.

Minulla on lomake, missä annetaan linkin teksti ja tiedosto, joka tallennetaan palvelimelle.Teksti tallennetaan tietokantaan. Asia on kunnossa. Mutta tulostus ulos tökkii.

Miksi kyseinen koodi tulostaa annetut linkit ja vie upload-kansioon mutta ei osaa valita tiedostoa. Koodi:

do {

for($i = 0; $i < count($a); $i ){

$filelist .= "" . $a[$i]."";
}
}

while(!is_dir($file) && !is_link($file));

Eli upload_dir on palvelimella oleva kansio, johon tiedostot tallennetaan. File käsitellään komennolla

$handle=opendir($upload_dir);
$file = readdir($handle);

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu