【问题标题】:upload file to another domain Codeigniter将文件上传到另一个域 Codeigniter
【发布时间】:2017-09-19 15:23:47
【问题描述】:

我有“www.mine.com/one”和“www.mine.com/two”。 我想将文件从“www.mine.com/two”中的表单上传到“www.mine.com/one”中的文件夹“images”。我不知道如何实现它。我需要将文件夹权限更改为 777 吗? 我试过用这样的ftp协议上传现有文件(img_1.jpg)。

$remote_file = 'http://mine.com/one/images/';
$ftp_host = 'localhost'; 
$ftp_user_name = 'mine'; 
$ftp_user_pass = 'mine123'; 
$local_file = 'http://mine.com/two/uploads/img_1.jpg';                               
$connect_it = ftp_connect( $ftp_host );

if(ftp_login( $connect_it, $ftp_user_name, $ftp_user_pass )){
   if ( ftp_put($remote_file, $local_file, FTP_BINARY ) ) {
      redirect('SUCCESS');
  }
  else {
     redirect('FAIL');
  }
}

结果总是重定向到“FAIL”。你能帮帮我吗?

【问题讨论】:

  • 您在此处缺少结束语 local_file = 'http://mine.com/two/uploads/img_1.jpg;
  • 只要 ftp 用户有写入文件夹的权限,就不必将权限更改为 777。您是否尝试过将 qith 连接到“常规”ftp 客户端(ei: filezilla)
  • 是的,我已经编辑过了。我不小心删除了它:)。但它仍然“失败”@LouisLoudogTrottier。
  • 是的,然后呢? @LouisLoudogTrottier
  • 您的日志中是否有任何错误?

标签: php codeigniter cpanel


【解决方案1】:

嗯,好像你正在连接到“localhost”,然后尝试将文件上传到http://mine.com/one/images/,这两行不能一起工作:

$remote_file = 'http://mine.com/one/images/';
$ftp_host = 'localhost';

它需要更像远程文件相对于您的 ftp 根文件夹的位置并且缺少文件名

$remote_file = '/one/images/img_1.jpg';

另外,您缺少需要作为资源的ftp_put 的第一个参数:

  if ( ftp_put($remote_file, $local_file, FTP_BINARY ) ) {

应该是

 if ( ftp_put($connect_it, $remote_file, $local_file, FTP_BINARY ) ) {

希望这会有所帮助, 在此处查看许多示例和文档:

http://php.net/manual/en/ref.ftp.php

在您的情况下,请参阅以下内容:

http://php.net/manual/en/function.ftp-put.php 和 http://php.net/manual/en/function.ftp-connect.php

【讨论】:

  • 非常感谢您的回答:D 现在可以了。我使用 ftp->upload($source, ".".$destination)。我将“uploads/img_1.jpg”声明为$source,将“/one/images/img_1.jpg”声明为$destination。流程是我先将文件上传到本地文件夹(uploads/img_1.jpg),然后我使用 ftp->upload 将文件从本地文件夹上传到 /one/images/img_1.jpg
  • 有时一点解释可以帮助更多,而不仅仅是为其他人重新编码。很高兴你成功了。坚持下去。
猜你喜欢
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
相关资源
最近更新 更多