Alla on kuvien uppimiseen tarkoitettu skripti. Move_uploaded_file ei jostain syystä siirrä kuvatiedostoa uuteen kansioon.
Uppiminen siis onnistuu, mutta tiedosto ei koskaan siirry oikeaan kansioonsa. Permissiot ovat oikein sekä lähettävässä- että kohde-kansiossa. Mikä tässä mättää?
//Maximi koko tähän. Esim. 350000 = 350kb.
$max_koko = 350000;
$nimi = $_POST['nimi'];
$linkki = $_POST['linkki'];
//Tarkastetaan päätteet ja tiedoston lähetys
if(isset($_POST["lahetys"]))
{
if((!empty($_FILES["uploaded_file"])) && ($_FILES["uploaded_file"]['error'] == 0))
{
//Tarkastetaan kuva (koko ja pääte)
$filename = basename($_FILES['uploaded_file']['name']);
//Haetaan pääte
$ext = substr($filename, strrpos($filename, '.') 1);
//Tarkastetaan mime-tyyppi
if (($ext == "jpg" || $ext == "jpeg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && ($_FILES["uploaded_file"]["size"] < $max_koko) || ($ext == "gif") && ($_FILES["uploaded_file"]["type"] == "image/gif") && ($_FILES["uploaded_file"]["size"] < $max_koko) || ($ext == "png") && ($_FILES["uploaded_file"]["type"] == "image/png") && ($_FILES["uploaded_file"]["size"] < $max_koko))
{
//Valitaan paikka johon tiedosto tallennetaan
$newname = realpath("../kuva/uusi_").$filename;
//$newname = dirname(__FILE__).'../kuva/'.$filename;
//Tarkastetaan, onko tiedosto jo serverillä
if (!file_exists($newname))
{
if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname)))
{
$sql_lauseke = "insert into kuva(nimi,linkki, tiedostonimi) values ('$nimi','$linkki', 'uusi_$filename')";
if(!$kysely = mysql_query($sql_lauseke))
{
print "Haku epäonnistui. Virhe:".mysql_error();
}
else
{
print "Lähetys onnistui!";
}
}
else
{
print "Virhe: Lähetyksen aikana tapahtui virhe!";
}
}
else
{
print "Virhe: Tiedosto ".$_FILES["uploaded_file"]["name"]." on jo olemassa.";
}
}
else
{
print "Virhe: Vain .jpg, .png ja .gif -päätteiset tiedostot kelpaavat. Max. koko on 350kb. ";
}
}
else
{
print "Virhe: Tiedostoa ei lähetetty!";
}
}
move_uploaded_file ei toimi palvelimella
2
377
Vastaukset
- On!!
Oudointa on, ettei php anna minkäänlaista ilmoitusta tiedonsiirron epäonnistumisesta, vaikka lisäisinkin skriptiin .mysql_error(); ......
- juhakorkeapudas
Ainakin tiedoston polussa näyttäisi olevan vikaa koska käytät siinä realpath-funktiota, joka poistaa relatiiviset viittaukset.
"Oudointa on, ettei php anna minkäänlaista ilmoitusta tiedonsiirron epäonnistumisesta, vaikka lisäisinkin skriptiin .mysql_error()"
- Funktio [move_uploaded_file] palauttaa joko true tai false sen mukaan, onnistuiko tiedoston siirto vai ei. mysql_error - funktiolla ei ole mitään tekemistä tämän asian kanssa.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tulipalossa henkilövahinkoja, itsenäisyyspäivä alkoi huonosti, poliisi tiedottaa lisää
Savonlinna https://www.como.fi/uutiset/savonlinna-henkilovahinkoja-tulipalossa-poliisi-tiedottaa-lisaa/11412056Ennen ei ollut persuja ja työttömyyttä, lääkäriinkin pääsi
Ennen oli kaikilla töitä Kauppiaille kelpasi kun saivat voittoa Yritystukia ei ollut Lääkäriin pääsi kaikki haluklaat Nu1484391Somali ei kätellyt Stubbia Linnan juhlissa
Miksei somali osaa noudattaa hyviä käytöstapoja. https://www.iltalehti.fi/viihdeuutiset/a/563a3dea-fa3f-41f3-b64f-406d24614124- 1174092
- 693685
20v on otettu kiinni
Tulipalo oli sytytetty joten murhasiko ex omat lapsensa ja heidän Äidin. Tuskin sitä kukaan ohikulkijakaan sytytti.473415Antifasismi - mitä se on?
Se on äärivasemmistolaista anarkistista toimintaa joka käyttää fasisminvastaisuutta keppihevosena oikeuttaakseen toimint542838Kuka on menehtynyt?
https://yle.fi/a/74-20198293 Kuulemani mukaan ryyppyporukka ollut hapualla ja kuolemanenkeli (F.G) eli mies jonka seuras202669- 572049
Kauhea ikävä iski
Mietin vain, mitä olet juuri nyt tekemässä. Mietin myös, välittyykö se sinulle, kun olet koko ajan mielessäni, tunnetko191632