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
345
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
Kysymys muille miehille
Onko teille varattu nainen ongelma? Mikään muu naisessa ei töki kun se että hän on varattu. Kamppailen houkutuksen kanss1307162Kaipaisin nyt kosketusta
jota ei koskaan ole ollut. Saisinpa tuntea kätesi niskallani ja silittelemässä päätäni. Sulaisin varmasti siihen.142519Imaami kysyy, miksi pojat uivat ilman valvontaa
Kalajoen särkät ovat usean kilometrin pituiset. Siellä on kylttejä, joissa varoitetaan rannan vaaroista. Siellä ei ole2631204- 1001009
Mansikkatiloilla hyväksikäytetään ukrainalaisia
Työolot ovat surkeita ja palkka kelvoton. https://yle.fi/a/74-20172942161937En ymmärrä käytöstäsi
Se on ollut eräänlaista hyväksikäyttöä. Että seura kyllä kelpaa palstan välityksellä silloin kun ei ole parempaakaan tek137890Kerrostaloihin ilmalämpöpumput
Ulkomailla näkee paljon ilmalämpöpumppuja kerrostalojen ulkoseinissä. Mikä estää taloyhtiötä hankkimasta niitä asuntoih69879Kiitoksia kaikille epäasiallisesta sisällöstä liputtaneille
Se ylimielisyys ja epäasiallisen julkaisun jakaminen ei sitten kantanut.79764Kirkonkylän puliveivarit
Hieman pistää silmään nuo puliukot ja akat kirkonkylän penkeillä ja S-marketin kulmilla. Tarttis varmaan tehdä asialle j13723Persaukinen puolankalainen kävi kerjäämässä paitaa
Ja lippistä. Nauratti suuresti kun katsoin. Kukahan mahtanee olla? Voipi katsoa täältä jutun. https://www.youtube.com18711