通过PHP将文件上载到服务器
我在我的网站上的PHP脚本上创建了一个.ics文件,现在我正在本地将该文件保存在我的计算机中,但我想将其上载到我的iCal Exchange帐户,以便从那里共享它 我可以通过iCal(应用程序)上传,但我需要通过PHP。在iCalExchange中,我有一个用户名和密码,说明上写着: 要从iCal发布新日历,请选择“在Web上发布” “服务器”选项,并使用以下URL之一: 请确保正确输入新用户名和密码 我在PHP中尝试了这一点,但没有成功:通过PHP将文件上载到服务器,php,file,ftp,icalendar,Php,File,Ftp,Icalendar,我在我的网站上的PHP脚本上创建了一个.ics文件,现在我正在本地将该文件保存在我的计算机中,但我想将其上载到我的iCal Exchange帐户,以便从那里共享它 我可以通过iCal(应用程序)上传,但我需要通过PHP。在iCalExchange中,我有一个用户名和密码,说明上写着: 要从iCal发布新日历,请选择“在Web上发布” “服务器”选项,并使用以下URL之一: 请确保正确输入新用户名和密码 我在PHP中尝试了这一点,但没有成功: $ftp_server='74.91.122.15
$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);
$ftp_server='74.91.122.152'//服务器IP
$conn\u id=ftp\u connect($ftp\u server);
//使用用户名和密码登录
$user=“zeroan”;
$passwd=“****”;
$login\u result=ftp\u login($conn\u id,$user,$passwd);
//检查连接
如果(!$conn_id)| |(!$login_result)){
echo“FTP连接失败!”;
echo“试图为用户$ftp\u用户名连接到$ftp\u服务器”;
死亡
}否则{
echo“
连接到$ftp_服务器,用于用户$user
”;
}
//directorylike/www.velibaba.com/images
ftp\u chdir($conn\u id,“http://icalx.com/public/zeroan/");
//$destination\u file=ftp\u pwd($conn\u id);
$source_file='cale.ics';
$destination\u file=“calendario.ics”;
回声(
);
打印$destination\u文件;
回声(
);
//上传文件
$upload=ftp\u put($conn\u id、$destination\u file、$source\u file、ftp\u二进制文件);
//检查上传状态
如果(!$upload){
echo“FTP上传失败!”;
}否则{
echo“将$source_文件作为$destination_文件上载到$ftp_服务器”;
}
//关闭FTP流
ftp_关闭($conn_id);
谢谢完整的工作示例:
My/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;
排除ProcessUpload身份验证,但发送用户和密码的方式与发布字段“name”的方式相同,在ProcessUpload上进行一点身份验证以确保安全。确保apache用户对远程文件夹具有写入权限。你说的“不走运”是什么意思?是否有错误消息?错误是:
警告:ftp_login()希望参数1是第10行的/Applications/XAMPP/xamppfiles/htdocs/pruebasmarty/Untitled.php中给定的资源布尔值ftp连接失败代码>@lincbour ftp\u connect()函数不起作用。那个IP有FTP服务器吗?它工作了,但是当我在本地主机上使用它时,当我试图上传到ical.com时,它什么也不做=(我不知道是不是因为我的用户名和密码有误,请参阅上面答案底部的我的建议。哦,谢谢,但我上传到的服务器不是我的。所以我不能这样做。无论如何,谢谢你!@alvk4r
<?php
echo "<pre>";
print_r($_POST);
print_r($_FILES);
Array
(
[name] => Foo
)
Array
(
[file] => Array
(
[name] => file.txt
[type] => application/octet-stream
[tmp_name] => /tmp/phpEBgYXy
[error] => 0
[size] => 30
)
)