Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: tiedoston siirrosta vielä

volume [14.09.2010 16:35:12]

#

siirrän lomakkeen kautta tiedoston palvelimen levylle seuraavasti:

<?php
  $polku = "tiedostot/".$_FILES['tiedosto']['name'];
  if(move_uploaded_file($_FILES['tiedosto']['tmp_name'], $polku)){
    echo "Tiedoston siirto palvelimelle onnistui!";
  } else{
    ... Asianmukaiset vierheilmoitukset
  }
?>

jos haluan varmistaa, että tiedoston nimessä ei ole php-koodia niin ajan
.$_FILES['tiedosto']['name']-muuttujan mysql_real_escape_string(stripslashes()) funktion läpi.

tällöinhän annettu tiedoston nimi voi muuttua. miten saan silloin tmp_name ja name kentät vastaamaan toisiaan, jotta tiedonsiirto onnistuisi? (olikohan ns. tyhmä kysymys ;-)

Macro [14.09.2010 16:37:28]

#

Missä tilanteessa PHP-koodi tiedostonimessä haittaa? PHP käsittelee noi nimet stringeinä, niin se ei pääse vahingoittamaan mitään (Vai, jos tiedostonimi olisi (joka ei taida olla mahdollinen?) ".Pahaa_PHP_koodia.".jotain?).

volume [14.09.2010 16:52:27]

#

vai pitäisikö nimenomaan ajatellakin niin, että jos tiedostonimi muuttuu funkkarin käsittelyssä, niin silloin talletuskin saa kaatua virheeseen!

-tossu- [14.09.2010 17:05:02]

#

volume kirjoitti:

miten saan silloin tmp_name ja name kentät vastaamaan toisiaan, jotta tiedonsiirto onnistuisi?

Millä tavalla vastaamaan? Tmp_name on tiedoston nimi palvelimen tmp-hakemistossa ja name tiedoston nimi lähettäjän koneella. Eihän niiden tarvitse vastata toisiaan.

Vastaus

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

Tietoa sivustosta