Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Загрузка файлов на FTP

Источник: realcoding.net

Любой администратор сайта хочет, что бы посетителей на его сайте было больше, а трафик, который они съедают, был небольшим. Для этого они открывают бесплатные фтп аккаунты, которые позволяют бесплатно загружать и скачивать файлы небольшого размера (как правило, не более 10 МБ). В этом случае возникает проблема автоматической загрузки файлов на фтп. В данной статье я продемонстрирую вам, как с помощью небольшой функции PHP максимально облегчить вам данную задачу.

Создадим небольшую форму загрузки файла:

<form action=upl.php method=post enctype=multipart/form-data name=Form>
<
input type=file name=filename>
<
input type=submit value=Загрузить>
</
form>

Обратите внимание, что upl.php, это имя файла, куда передаются данные, который и должен содержать функцию обработки и загрузки файла. Также при описании формы необходимо указать строку

enctype=multipart/form-data

которая позволяет загружать любые данные. Если у вас файл не загружается на фтп, первым делом проверьте, добавили ли вы это свойство.

Код файла upl.php:

<?php

function upload($filename)
{

$login=ваш_логин;
$pass=ваш_пароль;
$host=имя_фтп;
$path=путь_к_папке;

$tmp = $_FILES[$filename][tmp_name];
$aname = $_FILES[$filename][name];

$connect = ftp_connect($host);
if(!
$connect) exit();
$result = ftp_login($connect, $login, $pass);
if (
$result==false) exit();
if (
ftp_chdir($connect, $path)) ftp_put($connect, $aname, $tmp, FTP_BINARY);
else exit();
ftp_quit($connect);
unlink($tmp);

};

if (isset(
$filename)) upload(filename)

?>

$login и $pass – логин и пароль вашего фтп аккаунта
$host – имя вашего фтп (например, ftp.microsoft.com)
$path – внутренний путь к папке, куда необходимо загрузить файл (права для данной папки обязательно должны стоять на запись). Например /alex/download/upload/.

$tmp = $_FILES[$filename][tmp_name]

Определяем временное имя загружаемого файла. Здесь необходимо объяснить принцип загрузки файла. После того, как вы нажали на кнопку “Загрузка”, файл был помещен во временную директорию на вашем сервере (обычно папка tmp). Только после этого мы можем работать с данным файлом и пересылать его куда надо. Обычно содержимое папки tmp уничтожается автоматически, но что бы перестраховаться, в конце всех операций необходимо самому удалить файл

unlink($tmp)

Теперь необходимо соединиться с фтп:

$connect = ftp_connect($host);
if(!
$connect) exit();
$result = ftp_login($connect, $login, $pass);
if (
$result==false) exit();

Сразу же проверяем, если соединение отсутствует ($connect=false) или указаны неверные данные логина и/или пароля ($result=false) то прекращаем выполнение функции.

Далее при помощи функции ftp_chdir переходим в папку $path и загружаем файл с помощью функции ftp_put:

if (ftp_chdir($connect, $path)) ftp_put($connect, $aname, $tmp,

FTP_BINARY);
else exit()

Файл загружен, теперь необходимо отсоединиться от фтп и удалить временный файл:

ftp_quit($connect);
unlink($tmp)

Теперь осуществим обращение к функции:

if (isset($filename)) upload(filename)

Если пользователь выбрал какой-то файл ($filename не пустой), то загружаем данный файл на фтп.



Похожие статьи:
- Как заставить AJAX читать между строк
- Красивый код на PHP
- Преобразование гиперссылок средствами сервера Apache
- IPv6: расширение протокола IP
- Анимационное подчеркивание
- Сервисы в помощь оптимизатору
- Установка и настройка Apache сервера
- PageRank от Google
- Алгоритм расчета PageRank
- Кроссбраузерное выравнивание по центру
- Изменение фона в таблице
- CSS от А до Я
- Семантическая сеть, основанная на микроформатах


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]