Загрузить файл на сайт? - PullRequest
2 голосов
/ 20 августа 2011

Эй, ребята, мне просто интересно, как вы используете PHP для загрузки файла прямо на ваш сайт?

например:

Пользователь использует кнопку обзора для поиска файла для загрузки, затем, когда выбранный каталог файлов появляется в текстовом поле, и когда они нажимают кнопку «Загрузить», он загружает в каталог на веб-сайте с именем «загрузки».

Может кто-нибудь сказать мне, как это сделать, и, возможно, немного объяснить или связать меня с ресурсом, который мне поможет?

Спасибо.

Ответы [ 4 ]

1 голос
/ 20 августа 2011

Все объясняется в разделе Обработка загрузки файлов в руководстве по PHP.

Я бы рекомендовал избегать использования скрытого поля MAX_FILE_SIZE, поскольку не является частью какого-либо стандарта, известных браузеров не поддерживается, и его значение легко изменить на , влияющее на поведение PHP на стороне сервера.

1 голос
/ 20 августа 2011

Имейте форму и вставьте в нее файл ввода:

<form name="my_form" method="post" enctype="multipart/form-data" action="my_php_script.php">
    <input type="file" name="my_file" />
</form>

Затем в my_php_script.php обработайте загрузку файла так же, как и любой другой запрос POST.См. Эту страницу для получения подробной информации о бэкэнде: http://www.tizag.com/phpT/fileupload.php

Массив $_FILES содержит данные, относящиеся к загруженному файлу.

  • $_FILES['uploadedfile']['name'] - исходный путь пользователязагруженный файл.
  • $_FILES['uploadedfile']['tmp_name'] - путь к временному файлу, который находится на сервере.Файл должен существовать на сервере во временном каталоге с временным именем.

Вы должны переместить файл из временного каталога в более постоянное хранилище (например, в папку uploads/).Вы можете сделать это с помощью функции move_uploaded_file() следующим образом:

move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploads_folder);
0 голосов
/ 20 августа 2011

Вы должны использовать форму HTML с enctype, установленным на multipart/form-data, например:

<form action="upload_file.php" method="post" enctype="multipart/form-data">
    <input type="file" name="thefile" />
</form>

Затем в PHP вы можете проверить $_FILES['thefile'], чтобы получить необходимую информацию. Файл будет в $_FILES['thefile']['tmpname'], и вы можете переместить его оттуда в загруженный файл в нужную папку, используя move_uploaded_file():

move_uploaded_file($_FILES['thefile']['tmpname'], 'uploads/'.$_FILES['thefile']['name']);

Конечно, вы захотите выполнить дополнительные проверки работоспособности, чтобы убедиться, что вы не перезаписываете существующий файл и файл был успешно загружен без ошибок.

0 голосов
/ 20 августа 2011

Убедитесь, что вы указали multipart/form-data в элементе формы, затем включите поля файла.Вам потребуется проделать дополнительную работу на принимающей стороне, чтобы получить данные файла и сохранить их под соответствующим именем вместо временной / временной директории на сервере.

<form action="/some/url" enctype="multipart/form-data" method="post">
    <input type="file" name="some_file" />
    <intput type="submit" name="Upload that file!" />
</form>
...