Kezdőoldal » Számítástechnika » Weblapkészítés » Mért nem tudja átmásolni a...

Mért nem tudja átmásolni a képet (php)?

Figyelt kérdés

A hibaüzenet: Warning: copy(includes/avatar/1371067586.jpg) [function.copy]: failed to open stream: Permission denied in ********/includes/functions/avatar.php on line 63


A kód:

<?php

define ("MAX_SIZE","10024");



function getExtension($str) {

$i = strrpos($str,".");

if (!$i) { return ""; }

$l = strlen($str) - $i;

$ext = substr($str,$i+1,$l);

return $ext;

}



if(isset($_POST['Submit']))

{


$image=$_FILES['image']['name'];


if ($image)

{


$filename = stripslashes($_FILES['image']['name']);


$extension = getExtension($filename);

$extension = strtolower($extension);


if (($extension != "jpg") && ($extension != "jpeg") && ($extension !=

"png") && ($extension != "gif"))

{


echo '<h1>Unknown extension!</h1>';

$errors=1;

}

else

{


$size=filesize($_FILES['image']['tmp_name']);


if ($size > MAX_SIZE*1024)

{

echo '<h1>You have exceeded the size limit!</h1>';

$errors=1;

}



$image_name=time().'.'.$extension;


$newname="includes/avatar/".$image_name;


$copied = copy($_FILES['image']['tmp_name'], $newname);

if (!$copied)

{

echo '<h1>Copy unsuccessfull!</h1>';

$errors=1;

}}}}


if(isset($_POST['Submit']) && !$errors)

{

$sql = "UPDATE `b1_users` SET `avatar` = "".$newname."" WHERE `username` = "".$_SESSION['user'].""";

$res = mysql_query($sql);

echo "<h1>File Uploaded Successfully!</h1>";

}


?>


<form name="newad" method="post" enctype="multipart/form-data"

action="">

<table>

<tr><td><input type="file" name="image"></td></tr>

<tr><td><input name="Submit" type="submit" value="Upload image">

</td></tr>

</table>

</form>



2013. jún. 12. 22:10
 1/4 anonim ***** válasza:
Mappán a CHMOD értékek (engedélyek) megfelelőek? Írási engedélyt tedd rá!
2013. jún. 12. 22:45
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
igen
2013. jún. 12. 22:57
 3/4 anonim ***** válasza:
Az biztos, hogy a Permission denied hibaüzenetnek vajmi kevés köze van a forráskódhoz, amivel másolni akarsz. A te gépeden van vagy egy szolgáltatónál? Az utóbbi esetben csinálj egy tesztkörnyezetet a saját gépeden, és próbáld ki ott is.
2013. jún. 13. 06:07
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

Egyrészt a kiterjesztés alapján meghatározni a fájl típusát nem gyenge biztonsági kockázatot jelent. Használd a getimagesize -t a kép valós (mime) típusának lekérdezésére. Egy avatar esetében pedig nem a képfájl hossza, hanem kiterjedése, amit korlátozni kellene.


A szerver TEMP könyvtárához nincs jogosultságod hozzáférni, így használd a copy helyett a move_uploaded_file -t.

2013. jún. 13. 08:23
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!