Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 FTP Upload посредством cURL
  1. FTP Upload посредством cURL
Mutatos
     
Автор  Mutatos (24.10.2007 23:31)  съобщение до автора
Погледнат  5395 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (1)  абонирай се за PHP
    Страница 1 / 1

 



В този урок ще се запознаем с възможността за FTP ъплоуд на големи файлове посредством cURL. cURL е една прекрасна библиотека, която позволява транспорта на данни не само чрез POST и GET, но и чрез FTP ъплоуд. Преди да започнем трябва да подготвим някои неща. Стандартната настройка на PHP за ъплоуд на файлове е 2MB. Ако желаете да ъплоудвате по-големи файлове трявба да промените тази стойност в php.ini или да създадете един .htaccess файл и да увеличите от там стойността, ако е позволено, защото това не става навсякъде.

php_value upload_max_filesize 16M
php_value post_max_size 20M

Този .htaccess файл трявба да е в същата директория, където ще е и вашия файл за ъплоуд, който ще разгледаме след малко.

Нека сега се опитаме да ъплоуднем един файл върху защитен с парола FTP сървър посредством уеб формуляр. Създайте един файл на име curlupload.php.

CODE
1
2
3
4
5
6
7
<form action="" method="post" enctype="multipart/form-data">
     <
div>
         <
label for="upload">Select file</label>
         <
input name="upload" type="file" />
         <
input type="submit" name="Submit" value="Upload" />
     </
div>
</
form>

Тази форма, както виждате не е толкова сложна. Тя съдържа едно поле за избор на файлове и един бутон.

Кодът, който следва го качете над формата в същия файл [curlupload.php].


CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if (isset($_POST["Submit"]))
{
   
if (!empty($_FILES["upload"]["name"]))
    {
       
$ch = curl_init();
       
$localfile = $_FILES["upload"]["name"];
       
$fp = fopen($localfile, "r");
       
curl_setopt($ch, CURLOPT_URL, "ftp://ftp_login:password@ftp.domain.com/".$_FILES["upload"]["name"]);
       
curl_setopt($ch, CURLOPT_UPLOAD, 1);
       
curl_setopt($ch, CURLOPT_INFILE, $fp);
       
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
       
curl_exec ($ch);
       
$error_no = curl_errno($ch);
       
curl_close ($ch);
       
       
if ($error_no == 0)
        {
           
$error = "File uploaded succesfully.";
       
}
       
else
       
{
           
$error = "File upload error.";
       
}
    }
   
else
   
{
       
$error = "Please select a file.";
   
}
}
?>

Какво точно прави този код? След избор на файла и изпращане на формуляра, се отваря един временен файл, чрез fopen в който се записва избрания от нас файл и се инициализира връзката с FTP сървъра. Данните за идентификация се предават директно чрез URL-то. Другите настройки са необходими за успешното прехвърляне на файла върху избрания от нас FTP сървър. След осъществяването на трансфера се изчита "номера на грешката" чрез curl_errno(). Ако този код е "0" тогава всичко е станало както трябва.


При използване на този пример във вашите приложения е хубаво да добавите малко повече проверки за сигурност на кода. Чрез този урок искам да покажа само принципа на действие, останалото е ваша задача.



   


Ключови думи: ftp файл cURL ъплоуд upload file curl upload file ъплоуд на файл


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: Mutatos  
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Здрасти
Това не го знаех и ми хареса урока.
Искам да попитам може ли да се направи да се качват цели директории (папки) ?

  iwanov на 24.10.2007 23:38

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008