0

PHPの経験があまりなく、最近新しいホストに移動し、私のWebサイトは古いホストで完全に機能しましたが、新しいホストではコードにエラーがあります。

エラーメッセージは次のとおりです。

Warning: copy() [function.copy]: Unable to access http://i.imgur.com/USlH6p2.jpg in (directory)

エラーがあると言っているコードを次に示します

function upload_image_remote($image, $name) {
   $upload_dir = APP_PATH . '/image.uploads';
   //check for directory rights
   if(!is_writable($upload_dir)) {
      echo do_error(_('Folder image.uploads is not writeable'));
      exit;
   }

   //check if there's a directory for today uploads
   $today = date("d-m-Y");

   if(!is_dir($upload_dir .'/' . $today)) {
        if(!mkdir($upload_dir .'/' . $today, 0777)) {
            echo do_error(_(sprintf('Folder <strong>image.uploads/%s</strong> could not be created. Please check permissions to be 0777.', $today)));
            exit;   
        }
   }

   $upload_path = $upload_dir .'/' . $today;

   (--> this is where) return copy($image, $upload_path .'/'. $name);

}

(古いホスト)000webhostで完全に機能したため、パーミッションの問題である可能性があると思います。コードの何が問題なのか、誰か考えがありますか?

ありがとう

4

2 に答える 2

1

私の推測では、コピー機能がリモート ファイルにアクセスしようとしていて、PHP の設定が原因でアクセスできません。

セキュリティ上の理由から、ほとんどのホスティング会社はallow_url_fopen = 0. これは、リモートの場所から読み取ることができないことを意味します ( http://www.site.com/foo.gif)。ただし、ローカル ファイル システムから読み取ることはできます。

PHPドキュメントから:

このオプションは、ファイルのような URL オブジェクトへのアクセスを可能にする URL 対応の fopen ラッパーを有効にします。デフォルトのラッパーは、ftp または http プロトコルを使用してリモート ファイルにアクセスするために提供されます。zlib などの一部の拡張機能は、追加のラッパーを登録する場合があります。

これを確認するには、Web ルートに次の内容のファイルを作成して、サーバー上の現在の PHP 設定を表示します。allow_url_fopen設定を探しています。

<?php 
  echo phpinfo(); 
?> 
于 2013-10-03T09:39:00.573 に答える