【问题标题】:Unable to locate the source file. Please check your path找不到源文件。请检查您的路径
【发布时间】:2013-03-05 01:18:46
【问题描述】:

我尝试使用 codeigniter ftp 类上传文件。

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

    $config['hostname'] = 'www.domain.com';

    $config['username'] = 'xxxxxxxxx';

    $config['password'] = 'xxxxxxxx';

    $config['port']     = 21;

    $config['passive']  = FALSE;

    $config['debug']    = TRUE;

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

    $this->ftp->upload('C:\Users\SYSTEM2\Desktop\checking\ash.jpg\' ,  base_url().'uploads/myfolder/ash.jpg/');

    $this->ftp->close();

但显示此错误

“无法找到源文件。请检查您的路径。” 任何人请帮我解决这个问题...

【问题讨论】:

  • 我很惊讶您没有收到语法错误。

标签: php codeigniter ftp


【解决方案1】:

改为这个

$this->ftp->upload('C:\Users\SYSTEM2\Desktop\checking\ash.jpg\' ,  base_url().'uploads/myfolder/ash.jpg/');

使用

 $this->ftp->upload('C:\Users\SYSTEM2\Desktop\checking\ash.jpg','/www/uploads/myfolder/ash.jpg');

但您应该知道 ftp 服务器中的根路径,有时它是“/www/yourdomen/”。

【讨论】:

  • $fname = 'C:\\Users\\SYSTEM2\\Desktop\\checking\\ash.jpg'; if (file_exists($fname)) { $this->ftp->upload($fname, '/www/public/myfolder/ash.jpg'); } else { echo '文件未找到!'; } 输出:-“找不到文件!”
  • 报错一直是SOURCE文件(明确说明),不知道为什么大家一直提示新的DESTINATION路径
  • 也许您在 Windows 中写入的 ash.jpg 路径不正确?尝试点击文件ash.jpg,选择“属性”并查看“位置”参数
  • "C:\Users\SYSTEM2\Desktop\checking" 我明白了
  • 好的。我得到了它。但是你应该知道什么远程服务器对你的本地路径和你的电脑一无所知))。解决方案是像现在一样组织本地 Web 服务器,并在本地计算机上使用脚本或在您的 PC 上创建必须从 Internet 看到的公共文件夹。第二种比较复杂
【解决方案2】:

试试$this->ftp->upload('C:/Users/SYSTEM2/Desktop/checking/ash.jpg' , '/www/uploads/myfolder/');,祝我好运

【讨论】:

  • 我的问题在于源文件位置。当我检查 file_exists('C:/Users/SYSTEM2/Desktop/checking/ash.jpg')。它返回假。你能告诉我我的源文件有什么问题吗?我确定在我的电脑中该文件存在。那为什么它说'无法找到源文件'。
  • 确保 ash.jpg 存在于 C:/Users/SYSTEM2/Desktop/checking/ 否则它将返回 false。
【解决方案3】:

Codeigniter ftp 类先检查文件是否存在然后执行上传你看看codeigniter文件夹中的代码system\libraries\FTP.php第238行

if ( ! file_exists($locpath))
{
 $this->_error('ftp_no_source_file');
 return FALSE;
}

根据php.net 站点,如果您将 file_exists 与 Web 服务器外部的本地文件一起使用,则本地文件路径应采用 //computername/share/filename 格式。

这意味着您必须将文件放在具有公共权限的共享文件夹中。

如果您设置正确并确保权限允许来自网络的用户访问该文件,那么它可能会起作用。

我建议使用表单而不是手动编写文件路径,然后您可以编写如下代码:

$file=$_FILES["userfile"]["name"];
$this->ftp->upload($file ,  './upload','ascii', 0775);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 2016-05-12
    • 2016-12-02
    • 2016-05-13
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    相关资源
    最近更新 更多