2012-05-07 6 views
2

это моя формаmove_uploaded_file дает ошибку

<form action="test.php" method="post" name="myform"> 
<table width="500" border="0"> 
    <tr> 
    <td width="369" colspan="3">Admin's Area </td> 
    <td width="121"><?php echo $_SESSION['name'];?></td> 
    </tr> 
    <tr> 
    <td colspan="3">sponseres list </td> 
    <td><a href="admin.php#sponserForm">+Add new Sponser</a></td> 
    </tr> 
    <tr> 
    <td colspan="3"><?php echo $sponsere_list; ?></td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td align="center" colspan="4"> <a name="sponserForm" id="sponserForm"></a> Add New Sponser Form</td> 
    </tr> 
    <tr> 
    <td align="left">Sponser name</td> 
    <td align="left"><input type="text" name="spname" id="spname" tabindex="1" /></td> 
    <td colspan="2" align="center">&nbsp;</td> 
    </tr> 
    <tr> 
    <td align="left">Image</td> 
    <td align="left"><input type="file" name="fileToUpload" /></td> 
    <td colspan="2" align="center">&nbsp;</td> 
    </tr> 
    <tr> 
    <td align="left">Add this</td> 
    <td align="left"><input type="submit" name="sumit" id="sumit" value="Submit" tabindex="3" /></td> 
    <td colspan="2" align="center">&nbsp;</td> 
    </tr> 
    <tr> 
    <td align="center" colspan="4">&nbsp;</td> 
    </tr> 
</table> 
</form> 

и это код PHP для retrive это

<?php 
if(isset($_POST['spname'])){ 
    $spname=mysql_real_escape_string($_POST['spname']); 
    $user_query = "INSERT INTO `sponsers` (`spname`) 
            VALUES ('{$spname}') 
            "; 
    $sql=mysql_query($user_query)or die (mysql_error()); 
    $spic= mysql_insert_id(); 
    $newname="$spic.jpg"; 
    move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],"../sponsers/$newname")or die (mysql_error()); 
    } 
?> 

, когда я пытаюсь загрузить изображение это дает мне это предупреждение Примечание: Неопределенный индекс: fileToUpload в J: \ xampp \ htdocs \ srimag \ admin \ test.php в строке 3

, поэтому я попытался отобразить значение fileToUpload с помощью $ _POST ['fileToUpload'], он показывает значения без ошибок, поэтому не может определить ошибку.

так, пожалуйста, помогите мне в этом :-( Спасибо.

+0

plz см. Мой ответ –

ответ

4

Ваша главная задача вам не хватает соответствующего enctype атрибут вашей формы

<form ... enctype="multipart/form-data"> 

Убедитесь, что вы читаете этот раздел от руководства - http://php.net/manual/en/features.file-upload.php

Ваш вопрос указан на first page

Примечание:

Убедитесь, что ваша форма загрузки файл имеет атрибут enctype="multipart/form-data" в противном случае загрузка файлов не будет работать.

+0

спасибо Mr.Phil, моя ошибка исчезла. :-) Большое спасибо – Yasitha

+0

Не забудьте отметить это как лучший ответ, если вы так думаете @ user1367975 :) – nu6A

1

включить это в виде тега

enctype="multipart/form-data" 
1

Вы должны добавить это в форме

<form action="test.php" method="post" name="myform" enctype="multipart/form-data"> 
2

Вы должны enctype="multipart/form-data" в форму для загрузки изображений, также было бы хорошей идеей убедитесь, что пользователь даже загружает изображение и специфичность, именовав файл .jpg, не будет работать, изображения будут обрабатываться как поврежденные при выводе, если они не jpegs, не говоря уже о том, что люди загружают php-файлы.

Кроме того, необходимо сделать некоторые другие проверки на достоверности, загружать безопасности не то, что следует упускать из вида, иначе у вас есть один из Thos ужасного телефона дома/ботнетов вредоносных скриптов инъекционного кода во всех ваших скрипты:

<?php 
if(isset($_POST['spname'])){ 
    $spname=mysql_real_escape_string($_POST['spname']); 
    $user_query = "INSERT INTO `sponsers` (`spname`) 
            VALUES ('{$spname}')"; 
    $sql=mysql_query($user_query)or die (mysql_error()); 
    $spic= mysql_insert_id(); 



    if(isset($_FILES["fileToUpload"]["tmp_name"]) && $_FILES["fileToUpload"]["error"] ==0){ 
     $name = basename($_FILES["fileToUpload"]['name']); 
     $ext  = end(explode('.', $name)); 
     $newname = $spic.".".$ext; 
     $info = getimagesize($_FILES["fileToUpload"]['tmp_name']); 

     $allowed = array('image/png','image/jpg','image/gif'); 
     if($info[0]>0 && $info[1] > 0 && in_array($info['mime'],$allowed)){ 
      move_uploaded_file($_FILES["fileToUpload"]['tmp_name'], "../sponsers/$newname"); 
      //done upload 
     }else{ 
      //Not allowed, perhap notify user 
     } 
    } 

} 
?> 
Смежные вопросы