【问题标题】:Error when use do_upload使用 do_upload 时出错
【发布时间】:2013-09-14 07:10:48
【问题描述】:

我在使用 do_upload 时遇到问题,它总是返回错误消息“上传路径似乎无效”。

function save_blog(){
    $config['upload_path'] = 'ftp://username:password@hostname:port/public_html/img/blog/';
    //$config['upload_path'] = 'img/blog/';
    $config['allowed_types'] = 'gif|jpg|png';

    get_instance()->load->library('upload', $this->config);
    echo $config['upload_path'];
    if($this->upload->do_upload('myDoc'))
    {
        echo "file upload success";
    }
    else
    {
        echo $this->upload->display_errors();
    }
}

在我的服务器上有路径 /public_html/img/blog/

PS* 当我使用像 http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html 这样的简单代码时,我可以使用 do_upload

但在我的项目中,我必须一键上传 2 个文件,所以我尝试先使用 $this->upload->do_upload('myDoc') 作为我的一个输入,但它仍然出错。

【问题讨论】:

  • $this->config 不应该是 $this->config['upload_path'] 吗?
  • 发布您的错误信息
  • 上传路径似乎无效'。

标签: php codeigniter file-upload


【解决方案1】:

更新:

如果您需要上传文件,请先do_upload以您的第一种方法到本地文件夹,然后FTP上传本地文件到FTP服务器。

我想如果你需要通过 FTP 上传。用于建立到 FTP 的有效连接。

http://ellislab.com/codeigniter/user-guide/libraries/ftp.html

Codeigniter 示例。

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['debug']    = TRUE;

$this->ftp->connect($config);

$this->ftp->upload('/local/path/to/myfile.html', '/public_html/myfile.html', 'ascii', 0775);

$this->ftp->close();

仅适用于 PHP 的示例。(感谢 http://www.jonasjohn.de/snippets/php/ftp-example.htm

// FTP access parameters
$host = 'ftp.example.org';
$usr = 'example_user';
$pwd = 'example_password';

// file to move:
$local_file = './example.txt';
$ftp_path = '/data/example.txt';

// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");

// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");

// turn on passive mode transfers (some servers need this)
// ftp_pasv ($conn_id, true);

// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);

// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";

/*
** Chmod the file (just as example)
*/

// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)
if (!function_exists('ftp_chmod')) {
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
   }
}

// try to chmod the new file to 666 (writeable)
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
    print $ftp_path . " chmoded successfully to 666\n";
} else {
    print "could not chmod $file\n";
}

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

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多