2016-05-02 11 views
2

少し問題があります。私はプロジェクトに取り組んでいて、自分のルートを持っていたら、website1website2の2つのフォルダがあります。PHPからJavascriptへ:dirnameとdocument_root

website1は、アップロードスクリプトがオンになっている(この問題が発生している)スタッフパネルです。 website2は、「顧客」に表示されるウェブサイトです。ここでアップロードされたすべての画像、PDFなどがアップロードされます。私が開始する前に

だから、私はいくつかの注意事項があります:私はJavaScriptでPHPを使用することはできません

  1. 。 Javascriptは.jsファイルにあり、私の.phpファイルにはありません。
  2. 私のAJAXリクエストでは、クライアントサイドが画像を見るために正しく行われなければならないため、これを行うことはできません。

だから、基本的に、私はwebsite1にいると私は(DropzoneJS(http://www.dropzonejs.com/)との)ファイルをアップロードする際には、AJAX要求を行います。ここでは、ディレクトリにファイルをアップロードする必要がありますwebsite2website1ではIMGタグで画像をアップロードした後にその画像を確認する必要があります。

$uploadPath = filter_input(INPUT_POST, 'uploadPath'); 
$uploadPath = dirname(getenv('DOCUMENT_ROOT')) . '/' . $uploadPath; 

これが機能すると、ファイルがそのディレクトリにアップロードします:

だからPHPで、私はこれを得ました。 $uploadPathは(AJAXリクエストでPOSTパラメータとして送信され、JavaScriptで)これを次のとおりです。

/SITE2/assets/uploads/

は、今私はJavascriptに dirnamegetenv('DOCUMENT_ROOT')を翻訳する必要があります。私は document.location.hostnameを試しましたが、これは getenv('DOCUMENT_ROOT')とは異なる値を返します。

document.location.hostname:127.0.0.1 getenv('DOCUMENT_ROOT'):D:/ XAMPP/htdocsに

どのように私はJavascriptでgetenv('DOCUMENT_ROOT')と同じ値を得ることができますか?

答えて

0

PHPファイルでは、このようなJavaScript変数でスクリプトを作成することができます。

<script> 
var DOCUMENT_ROOT = "<?= getenv('DOCUMENT_ROOT') ?>"; 
</script> 
+0

、私は思います。これはうまくいくかもしれないが、私はPHPファイルにそれを追加する必要はありませんむしろJavascriptでやってください。 –

+0

これはphpからjavascriptへの変数をajax以外に持つ唯一の方法です。 – jcubic

0

あなたは2つのオプションがありますが、私はあなたはクライアントにサーバー/ディスク上の実際のファイル・パスを送る警告し側面は悪い考えです。

  1. 使用アヤックスので、クライアントは$.ajax({url: "getdir.php", success: someJSFuntion });
  2. のようにリクエストを送信する「の.php」ファイルであるためにあなたのJavaScriptファイルを変更し、すぐそこにコードが含まれ

JSファイルを ".php"ファイルにすることはできないという仕様はありません。だから、このようにそれにリンクしたい:

<script type="text/javascript" src="/js/myjs.php"></script> 

そして、それはあなたのJSファイルに直接PHPを使用してみましょうでしょう。

0

... getenv('DOCUMENT_ROOT')については

dirnameのJavaScriptのポートのphp.jsをチェックアウトするには、JavaScriptを経由して、この変数の値を取得することはできません。これは、JavaScriptファイルのクライアント側の「場所」が、サーバー上の実際の場所について何も言わないからです。あなたができることは、ファイルの親ディレクトリまたはドメイン名を取得することです。例えば

http://example.com/path/to/file 

「DOCUMENT_ROOT」は限りJavaScriptが懸念しているようです...

/path/to 

それも、サーバー側を持つ必要性を仮定することは非常に不適切と思われますJavaScriptが利用できるファイルの場所。私は単に、使用する場所を示す特定のURLクエリを使用するか、必要なものを追加できるので、AJAX応答でその場所を返信するだけです。あなたは通常、通常、この使用を受信したものを使用することになりどこ

{ 
    "document-root": "/SITE2/assets/uploads/", 

    "normal-response": { 
     ... 
    } 
} 

そして...

// For example 
var response = JSON.parse (request.responseText); 

// Normal response 
console.log (response['normal-response'][...]); 

// Document Root 
console.log (response['document-root']); 
関連する問題