我用的是自己定义的一个类,代码如下
<?class cUpLoad{var $port;//端口
var $ftp_stream;//开通的ftp的连线代码
var $remote_file;//欲获取的文件名
var $host;//服务器地址
var $username;//合法的用户名
var $password;//密码
var $ftp_pwd;//目前所在的路径
var $directory;//欲前往的路径
var $res;//布尔值
var $arrFileName;//以数组形式取得文件名function cUpLoad(){ //构造函数,完成必要的设定,并且打开ftp的连接

$this->host='localhost';
$this->port=21;
$this->username='danfeng';
$this->password='tangyanyan';
$this->ftp_stream=ftp_connect($this->host) or die ('Database error');
$this->res=ftp_login($this->ftp_stream,$this->username,$this->password) or die ('Database error');}
function UpLoad ($FileName,$File){ //参数分别为欲保存的文件名,目标文件的路径,实现上传功能
if ($this->res) {
if (ftp_put($this->ftp_stream,$FileName,$File,FTP_ASCII)) {

return true;
} else {

return false;
} }}
function FtpFileSize($FileName){ //服务器上指定文件的大小
return ftp_size($this->ftp_stream,$FileName);
}
function ChangeDirectory($directory){  //改变路径(只能打开ROOT下“一”级且已经存在的文件夹的)
return @ftp_chdir($this->ftp_stream,$directory);
}
function FtpFileDelete($FileName) { //删除服务器上指定的文件
 return ftp_delete($this->ftp_stream,$FileName);
}function arrFetchFileName($directory){ //取得ftp路径下的文件,返回一个二维数组
$this->arrFileName=ftp_nlist($this->ftp_stream,$directory);
}function MakeDir($directory){//建立文件夹
return ftp_mkdir($this->ftp_stream,$directory);
}function FtpQuit(){ //断开ftp连线
if(ftp_quit($this->ftp_stream)) {
return true;
} else { 
return false;
}
}} //end class?>
希望对你有帮助~~呵呵

解决方案 »

  1.   

    你设置好PHP才行!
    否则上面的通过ftp上传也不能用!
      

  2.   

    小弟我的PHP就是3。X版,用不了FTP函数,惨
    只能一个文件一个文件的拷贝,惨!
    还经常会遇到服务器目录写权限问题
      

  3.   

    要实现这个操作需要有几个文件,一个是上传页面,一个是调用上传内容页面,
    <?php
    // default.php3 - by charli<[email protected]>
    ?>
    <html>
    <head>
    <title>store binary data into sql database</title>
    </head>
    <body>
    <?php
    // 如果提交了表单,代码将被执行:
    if ($submit)
    {
    // 连接到数据库
    // (你可能需要调整主机名,用户名和密码)
    mysql_pconnect("localhost","","");
    mysql_select_db("binary_data");
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
    $result=mysql_query("insert into binary_data(description,bin_data,filename,filesize,filetype)".
    "values('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
    $id= mysql_insert_id();
    print "<p>this file has the following database id: <b>$id</b>";
    mysql_close();
    }
    else
    {
    // 否则显示储存新数据的表单
    ?>
    <form method="post" action="<?php echo $php_self; ?>" enctype="multipart/form-data">
    file description:<br>
    <input type="text" name="form_description" size="40">
    <input type="hidden" name="max_file_size" value="1000000">
    <br>file to upload/store in database:<br>
    <input type="file" name="form_data" size="40">
    <p><input type="submit" name="submit" value="submit">
    </form>
    <?php
    }
    ?>
    </body>
    </html><?php
    // getdata.php3 - by charli<[email protected]>
    // 调用方法: getdata.php3?id=<id>
    if($id) {
         // 你可能需要调整主机名,用户名和密码:
        @MYSQL_CONNECT( "localhost", "", "");
        @mysql_select_db( "binary_data");
        $query =  "select bin_data,filetype from binary_data where id=$id";
        $result = @MYSQL_QUERY($query);
        $data = @MYSQL_RESULT($result,0, "bin_data");
        $type = @MYSQL_RESULT($result,0, "filetype");
        Header("Content-type:$type");
        echo $data;
    };
    ?>
      

  4.   

    最主要的是你的<form enctype=''>要设置好才行