本站停止维护,已转移至laravel学习网;欢迎大家移步访问!

PHP 文件上传至其它服务器

既然不能这样实现,肯定有其他办法的,想着ftp也可以实现文件传输的哇,继而朝ftp方向入手。

首先,在自己台式机和笔记本上都开通了ftp,这个不会的同学可以网上查serv-u,相关教程肯定不少的。

然后在台式机本地做了个测试:

 $ftp_server = "192.168.1.100";

    $ftp_user_name = "laohu";

    $ftp_user_pass = "123456";

    $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

    $file = 'test.txt';

    $remote_file = '/test/a.txt';

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

        echo "文件移动成功\n";

    } else {

        echo "移动失败\n";

    } 

    ftp_close($conn_id);

运行后:文件移动成功。

要的就是这个效果了,之后用台式机做程序服务器,上传附件时全用ftp方法上传至笔记本上,笔记本ip是105,相应代码如下:

if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {

    $ftp_server = "192.168.1.105";

    $ftp_user_name = "lesley";

    $ftp_user_pass = "123456";

    $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

    $file = $_FILES['uploadfile']['tmp_name'];

    $remote_file = '/test/'.$_FILES['uploadfile']['name'];

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

        echo "文件:".$_FILES['uploadfile']['name']."上传成功\n";

    } else {

        echo "上传失败\n";

    } 

    ftp_close($conn_id);

} 

对应的前台页面代码:

<form action="uploadfile.php" method="post" enctype="multipart/form-data">

    <input type="file" name="uploadfile" id="uploadfile" />

    <input type="submit" name="submit" value="submit" />

  </form>

运行后确实成功。

需要注意,在用ftp_put方法时,第四个参数传送模式,需要用FTP_BINARY(二进制模式),用FTP_ASCII(文本模式)时,图片能上传但无法显示,其他文件重命名、中文乱码解决、上传权限控制等,就不在此提及了。

本文转自:http://blog.csdn.net/whxblue/article/details/7254095


转载请注明 :一沙网络原文出处:http://bbs.earnp.com/article/245
问题交流群 :562864481
0
打赏
发布时间 :2016-11-22 19:30:23
分享

0 个评论

    还没有评论,感觉来抢沙发吧!

要回复文章请先登录注册