晕,copy是操作本地文件系统的,http://localhost/test/images/DSC_0026.JPG这是网络操作了,要用ftp才行

解决方案 »

  1.   

    大侠,给个ftp的思路或者类似的例子啊
      

  2.   

    <?php
    /**
    * 函数名 php_ftp_download
    * 功能   从ftp服务器上下载文件
    * 入口参数
    * filename 欲下载的文件名,含路径
    */
    function php_ftp_download($filename) {
      $phpftp_host = "ftplocalhost";    // 服务器地址
      $phpftp_port = 21;            // 服务器端口
      $phpftp_user = "name";        // 用户名
      $phpftp_passwd = "passwrd";        // 口令
      $ftp_path = dirname($filename) . "/";    // 获取路径
      $select_file = basename($filename);    // 获取文件名  $ftp = ftp_connect($phpftp_host,$phpftp_port);    // 连接ftp服务器
      if($ftp) {
        if(ftp_login($ftp, $phpftp_user, $phpftp_passwd)) {    // 登录
          if(@ftp_chdir($ftp,$ftp_path)) {            // 进入指定路径
            $tmpfile = tempnam( getcwd()."/", "temp" );    // 创建唯一的临时文件
            if(ftp_get($ftp, $tmpfile, $select_file, FTP_BINARY)) {    // 下载指定的文件到临时文件
              ftp_quit( $ftp );    // 关闭连接
              header("Content-Type: application/octet-stream");
              header("Content-Disposition: attachment; filename=" . $select_file);
              readfile($tmpfile);
              unlink($tmpfile );    // 删除临时文件
              exit;
            }
            unlink($tmpfile );
          }
        }
      }
      ftp_quit($ftp);
    }
    ?>
      

  3.   

    如果想上传东西到服务器,建议不要使用FTP,PHP里的FTP是必须服务器对服务器传的,
    也就是说,如果你的客户端没有安装webserver,使用FTP命令是无法实现的(至少我试验
    的结果是这样).上传东西到服务器方案
    1 使用HTML里的file表单将文件上传到服务器临时目录
    2 使用PHP里的copy或者move_uploaded_file命令将文件移到你所需要的地方
    3 不要担心服务器里临时目录里的东西会越来越多,因为当你上传完后,如果不将文件
    移走,服务器会自动删除你所传的东西.
    以上是个人心得,具体代码请参考PHP手册.
      

  4.   

    //$fileName 是主机上 文件路径和文件名(如:c:\test.c)
    $ext = substr($fileName,-3); switch( $ext ){
       case "pdf": $ctype="application/pdf";              break;
       case "exe": $ctype="application/octet-stream";     break;
       case "zip": $ctype="application/zip";              break;
       case "doc": $ctype="application/msword";           break;
       case "xls": $ctype="application nd.ms-excel";      break;
       case "ppt": $ctype="application nd.ms-powerpoint"; break;
       case "gif": $ctype="image/gif";                    break;
       case "png": $ctype="image/png";                    break;
       case "jpg": $ctype="image/jpg";                    break;
       default:    $ctype="application/force-download";
    }
     header('Content-Type: '.$ctype);  header('Expires: ' . $now);  header('Content-Disposition: inline; filename="' . $fileName . '.' . $ctype . '"');  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  header("Content-Disposition: attachment; filename=".basename($fileName).";");  header('Pragma: public');  @readfile($fileName);