2013-11-07 2 views
0

Я создаю файл .ics на скрипте PHP на своем веб-сайте, теперь я сохраняю этот файл локально на своем компьютере, но я хотел бы загрузить его на свою учетную запись iCal Exchange, чтобы я мог поделитесь им оттуда.Загрузите файл на сервер с помощью PHP

Я могу загрузить через iCal (приложение), но мне нужно сделать это через PHP. В iCalExchange у меня есть имя пользователя и пароль и инструкции говорят:

Чтобы опубликовать новый календарь с ческих, выберите «Опубликовать на сервере Web» вариант, а также использовать один из адресов:

http://icalx.com/private/zeroan/

http://icalx.com/public/zeroan/

обязательно введите новое имя пользователя и пароль правильно.

Я попробовал это в PHP не повезло:

$ftp_server='74.91.122.152';//serverip 
    $conn_id = ftp_connect($ftp_server); 


    // login with username and password 
    $user="zeroan"; 
    $passwd="****"; 
    $login_result = ftp_login($conn_id, $user, $passwd); 

// check connection 
    if ((!$conn_id) || (!$login_result)) { 
     echo "FTP connection has failed!"; 
     echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
     die; 
    } else { 
     echo "<br>Connected to $ftp_server, for user $user<br>"; 
    } 
//directorylike /www.velibaba.com/images 
    ftp_chdir($conn_id, "http://icalx.com/public/zeroan/"); 


//$destination_file=ftp_pwd($conn_id); 


$source_file='cale.ics'; 
$destination_file="calendario.ics"; 
echo ("<br>"); 
print $destination_file; 

echo ("<br>"); 

// upload the file 
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status 
if (!$upload) { 
     echo "FTP upload has failed!"; 
    } else { 
     echo "Uploaded $source_file to $ftp_server as $destination_file"; 
    } 

// close the FTP stream 
ftp_close($conn_id); 

Благодарности

+0

Что вы подразумеваете под «не повезло»? Было ли сообщение об ошибке? – lincb

+0

Ошибка была: 'Предупреждение: ftp_login() ожидает, что параметр 1 будет ресурсом, boolean указан в /Applications/XAMPP/xamppfiles/htdocs/pruebasmarty/Untitled.php в строке 10 Не удалось подключиться к FTP!' @lincb –

+0

Ваш ftp_connect() не работает. У этого IP-сервера есть FTP-сервер? – lincb

ответ

1

Полный рабочий пример: Мой /var/www/stackoverflow/curluploader.php файл

<?php 
$url = "http://localhost/stackoverflow/processupload.php"; 
$post_data['name'] = "Foo"; 
$post_data['file'] = '@'.__DIR__ . '/file.txt'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
$response = curl_exec($ch); 

echo $response; 

Префикс пути к файлу с помощью @ делает трюк.

Теперь мой /var/www/stackoverflow/processupload.php

<?php 
echo "<pre>"; 
print_r($_POST); 
print_r($_FILES); 

Если Everthing это нормально, вы должны что-то вроде:

Array 
(
    [name] => Foo 
) 
Array 
(
    [file] => Array 
     (
      [name] => file.txt 
      [type] => application/octet-stream 
      [tmp_name] => /tmp/phpEBgYXy 
      [error] => 0 
      [size] => 30 
     ) 

) 

Исключить аутентификации proccessupload, но отправить пользователя и пароль, то же вы отправляете поле «имя», делаете небольшую аутентификацию на proccessupload, чтобы все было в безопасности. Убедитесь, что пользователь Apache имеет права на запись в удаленной папке.

+0

Это сработало, но при использовании его в localhost, когда я пытаюсь загрузить на ical.com, он ничего не делает = (я не знаю, если это так, что имя пользователя и пароль я делаю неправильно –

+0

см. Мои советы в нижней части ответа выше. – rernesto

+0

О, спасибо, но сервер, который я загрузил, не принадлежит мне. Поэтому я не могу этого сделать. Спасибо вам все равно! @ alvk4r –

Смежные вопросы