[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Web - программирование / PHP /

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

Любой администратор сайта хочет, что бы посетителей на его сайте было больше, а трафик, который они съедают, был небольшим. Для этого они открывают бесплатные фтп аккаунты, которые позволяют бесплатно загружать и скачивать файлы небольшого размера (как правило, не более 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 не пустой), то загружаем данный файл на фтп.




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Web - программирование / PHP /

GTK+: перспективы развития
02-03-2010   

Библиотека GTK+ прошла долгий путь развития и сейчас очень популярна. GNOME, одна из ведущих оконных сред, использует GTK+ почти исключительно, GIMP построен на GTK+, множество коммерческих разработчиков ПО, таких как Abobe, NVidia и VMware, решили использовать эту библиотеку в качестве графической основы для своих продуктов... подробнее

Кол. просмотров: общее - 4237 сегодня - 2

Новостной портал
13-11-2009   

Slashdot.org – популярный новостной портал с посещаемостью 50 млн. человек в месяц. Авторы проекта добились такого успеха, предоставляя пользователям свежие и интересные новости из мира IT... подробнее

Кол. просмотров: общее - 4077 сегодня - 2

Параллельное выполнение скриптов может нарушить целостность информации в файлах
13-11-2009   

Здесь рассматривается вопрос, что бывает, если запустить некий скрипт почти одновременно (что происходит, например, при большой нагруженности сервера) несколько раз, т.е. запустить несколько копий одного и того же скрипта. И к чему это может привести... подробнее

Кол. просмотров: общее - 3938 сегодня - 2

No spam.php
10-11-2009   

...и снова о спаме. Кто о нем только не писал, и все писали, что это плохо и ай-яй-яй. Я не буду оригинальничать, и тоже скажу – это плохо. Это ай-яй-яй. Как бороться со спамерами со своей стороны... подробнее

Кол. просмотров: общее - 3964 сегодня - 3

Начинаем работу с рисунками в php для Windows
10-11-2009   

Эта статья даст вам общее представление о том, как создавать, обрабатывать и выводить рисунки в PHP4 для Windows... подробнее

Кол. просмотров: общее - 3959 сегодня - 3



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects