Проблема в скрипте загрузки php? - PullRequest
1 голос
/ 07 декабря 2009
 function getExtension($str) {
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
 }

define ("MAX_SIZE","2000"); 

if( isset($_FILES['file_upload']))
 {

$errors=0;
$image=$_FILES['file_upload']['name'];
if ($image) 
{
    $filename = stripslashes($_FILES['file_upload']['name']);
    $extension = getExtension($filename);
    $extension = strtolower($extension);
    if (($extension != "jpg") && ($extension != "bmp") && ($extension != "png") && ($extension != "gif")) 
        {
            echo '<h1>Unknown extension!</h1>';
            $errors=1;
        }
    else
        {
            $size=filesize($_FILES['file_upload']['tmp_name']);
            if ($size > MAX_SIZE*1024)
            {
                echo '<h1>You have exceeded the size limit!</h1>';
                $errors=1;
            }
                $random_name=md5(uniqid(mt_rand(), true)).'.'.$extension;   
                $from=$_FILES['file_upload']['tmp_name'];               
                $newname='"temp_images/'.$random_name.'"';                      
                rename($from, $newname);     Problm is here?????
                                    //move_uploaded_file($from, $newname); Even tried this

            }   
}       

}

Я не знаю, почему изображения не перемещаются в папке temp_images. Кто-нибудь может мне помочь. Заранее спасибо.

Edit:

ФОРМА HTML:

 <form name="form_upload" action="<?=$PHP_SELF?>"  method="post" enctype="multipart/form-data">
                                        <table   class='nryo_modal_div_table' align='center'>
<tr>
<td align='left'  class='response_color_ok'>
Select File:
    </td>                                               </tr>                                       <tr>

Ответы [ 2 ]

1 голос
/ 07 декабря 2009

Убедитесь, что папка temp_images имеет разрешения на запись; chmod до 755.

Также убедитесь, что вы указали enctype = multipart в форме, используемой для загрузки изображений.

0 голосов
/ 07 декабря 2009

Вы можете попробовать использовать функцию move_uploaded_file вместо функции rename . Как отметил sarfraz, также убедитесь, что для папки temp_images установлены правильные разрешения.

Что-то вроде этого я обычно делаю:

if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $newname)) {
  //move okay
}else{
  //move not okay
}

Чтобы программно изменить права доступа к папке, взгляните на функцию PHP chmod ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...