Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > загрузка файла


Автор: StachelDraht 11.8.2009, 12:05
Привет!
Хочу загрузить файл на сервер. Есть форма:
Код

                            <form method="POST" id="regForm" enctype="multipart/form-data">
                                <table class="registerTable" border="0">
                                 <tr>
                                     <td><img src="/user_files/noimg.jpg" border="1"/></td>
                                        <td valign="bottom"><input type="file" name="update[avatar]"></td>
                                    </tr>
                                    
                                    
                                    <tr>
                                        <td class="req">* {word:name}:<br/><input type="text" name="update[name]" value="{user:name}" check="true" size="28"></td>
                                        <td class="req">* {word:surname}:<br/><input type="text" name="update[surname]" value="{user:surname}" check="true" size="28"></td>
                                    </tr>
                                    <tr>
                                        <td class="req">* {word:address}:<br/><input type="text" name="update[address]" value="{user:address}" check="true" size="28"></td>
                                        <td></td>
                                    </tr>
                                    <tr>
                                        <td class="req">* {word:city}:<br/><input type="text" name="update[city]" value="{user:city}" check="true" size="28"></td>
                                        <td></td>
                                    </tr>
                                    <tr>
                                        <td class="req">* {word:country}:<br/><input type="text" name="update[country]" value="{user:country}" check="true" size="28"></td>
                                        <td class="req small">* {word:zip_code}:<br/><input type="text" name="update[zip_code]" value="{user:zip_code}" check="true" size="15"></td>
                                    </tr>
                                    
                                    <tr>
                                        <td>* {word:phone}:<br/><input type="text" name="update[phone]" value="{user:phone}" check="true" size="18"></td>
                                        <td></td>
                                    </tr>
                                    
                                    <tr>
                                        <td colspan="2" class="sep"></td>
                                    </tr>
                                    <tr>
                                        <td id="pass">* {word:password}:<br/><input type="password" name="update[password]" onblur="checkpasswords();" size="28"></td>
                                        <td id="pass2">* {word:confirm_password}:<br/><input type="password" name="update[confirm_password]" onblur="checkpasswords();" size="28"></td>
                                    </tr>
                                    <tr>
                                        <td class="req" id="now_pass">{word:now_password}:<br/><input type="password" name="update[current_password]" check="true"></td>
                                    </tr>
                                    <tr>
                                        <td colspan="2" align="right"><a href="" onclick="submitForm();return false;" class="btn">{word:save}</a></td>
                                    </tr>
                                </table>
                            </form>


В пхп файле делаю var_dump($_POST); и не вижу даже что бы название файла передавалось скрипту.
Код

                if(copy($_FILES["avatar"]["tmp_name"],
                            "/avatars/".$_FILES["avatar"]["name"]))
                            {
                        echo "File uploaded";
                        } else {
                        echo "File not uploaded";
                        }

Конечно же выводит File not uploaded
и Warning: copy() [function.copy]: Filename cannot be empty in



Спасибо!!!

Автор: Ипатьев 11.8.2009, 12:16
А зачем делать var_dump($_POST), если для фалов предназначен (и это видно из кода), массив $_FILES?

Автор: StachelDraht 11.8.2009, 12:26
 smile Спасибо!
Но все равно файл на сервер не грузит.

Автор: bars80080 11.8.2009, 12:47
дык, зачем было мутить такие массивные имена?

имя поля для файла update[avatar], а проверяете в $_FILES "update"

либо copy($_FILES["update"]["avatar"]["tmp_name"],

либо используйте просто имя (что даже лучше)


и зачем вы используете copy, если для таких целей есть специальная функция move_upload_file()?

Автор: Ипатьев 11.8.2009, 13:04
StachelDraht, смешно, действительно smile
Говоришь человеку сделать var_dump, а он отвечает "файл не грузится".

Автор: StachelDraht 11.8.2009, 13:45
Напоследок последний вопрос, как переименовать имя загружаемого файла если я загружаю через copy()?

Все грузиться, спасибо огромное!

Автор: lelik133 11.8.2009, 14:50
задать в copy параметр $dest такой какой захочется

Автор: StachelDraht 11.8.2009, 15:43
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)