- Загрузка файлов на сервер PHP с помощью самого простого функционала
- Зачем нам серверное пространство?
- Проще не бывает!
- move_uploaded_file
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- 6 Ways To Move Files In PHP (Simple Examples)
- TLDR – QUICK SLIDES
- TABLE OF CONTENTS
- WAYS TO MOVE FILES IN PHP
- 1) BASIC RENAME FILE
- 2) BASIC MOVE FILE
- 3) MOVE WITHOUT OVERRIDING
- 4) MOVE FILES OF CERTAIN EXTENSIONS
- 5) MOVE FILES TO ANOTHER SERVER
- 6) MOVE FILES WITH COMMAND PROMPT
- DOWNLOAD & NOTES
- SUPPORT
- EXAMPLE CODE DOWNLOAD
- EXTRA BITS & LINKS
- THE SUMMARY
- LINKS & REFERENCES
- TUTORIAL VIDEO
- INFOGRAPHIC CHEAT SHEET
- THE END
- PHP move_uploaded_file() Function
- Syntax
- Parameter Values
- Technical Details
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
Загрузка файлов на сервер PHP с помощью самого простого функционала
От автора: у меня на компьютере творится полнейший бардак! Жена позабивала винт всякими «чемоданами без ручек», какими-то непонятными программами. Кроме этого накачала уйму книг по кулинарии, цветоводству и о том, как узнать о неверности мужа. Из-за последней категории литературы я и боюсь что-то удалять. Вот решил все ее дамские файловые «фичи» закинуть куда-нибудь в онлайн. Получается, что загрузка файлов на сервер PHP актуальна не только для вас, но и для меня :).
Зачем нам серверное пространство?
Не думаю, что такой вопрос может возникнуть у кого-то. Но всякое бывает! Скажу только, что различные решения для загрузки чего-либо на серверное пространство востребованы в сфере сайтостроения. Благо, за примерами бегать далеко не надо.
Все мы являемся пользователями той или иной социалки. Паутинки этих «липких» сетей окутали, затронули всех и каждого. Чтобы загрузить в свой профиль фотки с отдыха, с семейного торжества и другие доказательства успешной жизни, используется загрузка файлов на сервер через PHP.
Кроме этого подобный функционал реализован и на обычных сайтах с поддержкой комментариев. Пользователю предоставляется возможность украсить свой аккаунт аватаркой, выделяющей его среди остальной аудитории. В общем, по всей Сети на серверное пространство грузят все и каждый.
Проще не бывает!
Любое программное решение можно «обвешать» стольким количеством дополнительного функционала, что порой автор и сам забывает, какая из функций программы является основной.
Онлайн курс «PHP-разработчик»
Изучите курс и создайте полноценный проект — облачное хранилище файлов
С нуля освоите язык программирования PHP, структурируете имеющиеся знания, а эксперты помогут разобраться с трудными для понимания темами, попрактикуетесь на реальных задачах. Напишете первый проект для портфолио.
Но мы постараемся так не закапываться. Рассмотрим основы PHP загрузки файла на сервер на примере, который не «отяжелен» различными фичами. То есть это будет просто загрузчик.
move_uploaded_file
Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination .
Такая проверка особенно важна в том случае, если существует шанс того, что какие-либо действия, производимые над загруженным файлом, могут открыть его содержимое пользователю или даже другим пользователям системы.
Список параметров
Путь к загруженному файлу.
Назначение перемещаемого файла.
Возвращаемые значения
В случае успеха возвращает TRUE .
Если filename не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE .
Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE . Кроме того, отображается предупреждение.
Примеры
Пример #1 Загрузка нескольких файлов
$uploads_dir = ‘/uploads’ ;
foreach ( $_FILES [ «pictures» ][ «error» ] as $key => $error ) if ( $error == UPLOAD_ERR_OK ) $tmp_name = $_FILES [ «pictures» ][ «tmp_name» ][ $key ];
$name = $_FILES [ «pictures» ][ «name» ][ $key ];
move_uploaded_file ( $tmp_name , » $uploads_dir / $name » );
>
>
?>?php
Примечания
Замечание:
Функция move_uploaded_file() принимает во внимание как безопасный режим, так и open_basedir. Тем не менее, ограничения накладываются лишь на параметр destination , чтобы разрешить перемещение загруженных файлов, так как параметр filename может конфликтовать с этими ограничениями. move_uploaded_file() гарантирует безопасность этой операции, работая лишь с теми файлами, которые были загружены через PHP.
Если результирующий файл уже существует, он будет перезаписан.
Смотрите также
- is_uploaded_file() — Определяет, был ли файл загружен при помощи HTTP POST
- rename() — Переименовывает файл или директорию
- Простой пример использования этой функции можно найти в разделе «Загрузка файлов на сервер»
6 Ways To Move Files In PHP (Simple Examples)
Welcome to a quick tutorial on how to move files in PHP. Need to move a file from one folder into another?
Moving files in PHP is as simple as using a single function – rename(«SOURCE.FILE», «FOLDER/TARGET.FILE») . Yes, there is no move file function in PHP, and we literally “rename” a file into another folder.
That should cover the basics, but things are different when it comes to “advanced file moving” – Read on for more examples!
TLDR – QUICK SLIDES
TABLE OF CONTENTS
WAYS TO MOVE FILES IN PHP
All right, let us now get into the various ways and examples of how to move files in PHP.
1) BASIC RENAME FILE
As in the introduction, changing a file name is as easy as using the rename() function. But please take note that if there is an existing new.txt , it will be overridden without any warning.
2) BASIC MOVE FILE
As in the introduction again, there is no move() function in PHP – We literally just use rename() to move a file from one directory to another.
3) MOVE WITHOUT OVERRIDING
return rename($src, $dest); > // (B) GO! echo safemove("old.txt", "new.txt") ? "OK" : "ERROR" ;
To prevent overriding on moving files, we can do a simple file_exists() check – Then, you decide. Either don’t move the file or choose a different file name.
4) MOVE FILES OF CERTAIN EXTENSIONS
// (B) GET ALL FILES $files = glob($src."*.", GLOB_BRACE); // (C) MOVE if (count($files)>0) < foreach ($files as $f) < $moveTo = $dest . basename($f); echo rename($f, $moveTo) ? "$f moved to $moveTo\r\n" : "Error moving $f to $moveTo\r\n"; >> > movetype("jpg,png,gif", "d:/from/", "d:/to/");
Only want to move certain types of files in a folder? Use the glob() function to help filter out those files first, then move them one-by-one.
5) MOVE FILES TO ANOTHER SERVER
curl_file_create($file), // NOTE: PHP 5.5+ ONLY "key" => "value" // OPTIONAL EXTRA FIELDS ]); // (B) SEND FILE $results = curl_exec($curl); curl_close($curl); // (C) DELETE LOCAL FILE AFTER SUCCESSFUL SEND if ($results == "OK")
There are actually quite a number of ways to move files from one server to another. This is a “PHP way” if you don’t want to set up an FTP server, shared drive, or anything of that sort.
On the “source server”, we will use CURL (client URL) to send the file to the “destination server”. Thereafter, we delete the file after a successful transfer.
*/ // (B) WORKS THE SAME AS REGULAR FILE UPLOAD // move_uploaded_file(SOURCE, DESTINATION) echo move_uploaded_file($_FILES["up"]["tmp_name"], $_FILES["up"]["name"]) ? "OK" : "ERROR" ; // (C) FOR DEBUGGING // print_r($_SERVER); // print_r($_POST); // print_r($_FILES);
On the “destination server”, we handle the file transfer just like a “normal file upload”. But you might want to protect this script a little more – Verify the identity of the client, restrict by IP address, or maybe set a “secret key”.
6) MOVE FILES WITH COMMAND PROMPT
Finally, this is not exactly using PHP to move files… But we are running a shell command to move files from PHP.
DOWNLOAD & NOTES
Here is the download link to the example code, so you don’t have to copy-paste everything.
SUPPORT
600+ free tutorials & projects on Code Boxx and still growing. I insist on not turning Code Boxx into a «paid scripts and courses» business, so every little bit of support helps.
EXAMPLE CODE DOWNLOAD
Click here for the source code on GitHub gist, just click on “download zip” or do a git clone. I have released it under the MIT license, so feel free to build on top of it or use it in your own project.
EXTRA BITS & LINKS
That’s all for this guide, and here is a small section on some extras and links that may be useful to you.
THE SUMMARY
LINKS & REFERENCES
TUTORIAL VIDEO
INFOGRAPHIC CHEAT SHEET
THE END
Thank you for reading, and we have come to the end of this guide. I hope that it has helped you with your project, and if you want to share anything with this guide, please feel free to comment below. Good luck and happy coding!
PHP move_uploaded_file() Function
The move_uploaded_file() function moves an uploaded file to a new destination.
Note: This function only works on files uploaded via PHP’s HTTP POST upload mechanism.
Note: If the destination file already exists, it will be overwritten.
Syntax
Parameter Values
Parameter | Description |
---|---|
file | Required. Specifies the filename of the uploaded file |
dest | Required. Specifies the new location for the file |
Technical Details
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.