2017-07-08 5 views
2

からメインドメインのディレクトリにアップロードされたファイルを格納する方法、それはこのようにする必要があり、私のメインのドメインディレクトリにアップロードされたファイルを保存することができますしてください:これは速いだろうどのようにサブドメインのアップロードフォーム

move_uploaded_file(https://example.com/uploads) 
+0

ウェブサーバーのフォルダはどのように構造化されていますか?通常、Linux Apacheの場合は '/ var/www/html'や'/var/www/subdomain/'のようなものがあります。 – McRed

+0

メインドメインの場合はpublic_html /サブドメインの場合はsubdomain.example.com/のようになります。サブドメインのフォルダはpublic_htmlにありません –

+0

これらのファイルはサブドメインに既に存在しているのですか、フォームを使用してアップロードしていますか? – McRed

答えて

0

最初のステップは、ハンドリングとここに開始することである文字列を見てみたいかもしれませんが、ファイルをアップロード:
http://php.net/manual/en/function.move-uploaded-file.php

最初の例では、ほぼ正確に何であります必要:

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["pictures"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
     // basename() may prevent filesystem traversal attacks; 
     // further validation/sanitation of the filename may be appropriate 
     $name = basename($_FILES["pictures"]["name"][$key]); 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
?> 

2つの編集が必要です。 $uploads_dirには、ファイルがアップロードされる場所への相対パスが必要です。フォームがサブドメインのルートにあり、subdomain.example.com/にあり、それらをpublic_html/uploadsに移動したいとします。新しい$uploads_dirは、次のようになります。

$uploads_dir = __DIR__ . '/../public_html/uploads'; 

__DIR__は、あなたのPHPファイルが実行されている現在のディレクターを与えるこれは、あなたが他のディレクトリへの相対パスを作成することができます。

2番目の編集は、$_FILESアレイを更新して、アップロードするものの適切な構造をループすることです。この例のように写真ではないかもしれません。

+0

アプリケーションのどこかにアップロードするパスを定義することをお勧めします。これは、各ファイルの詳細と共に格納されたデータベースに存在することも、アプリケーションの設定に含めることもできます。いずれも動作します。 – McRed

+0

ホームディレクトリは/ home/userです。このディレクトリにはpublic_htmlとサブドメインがあります。サブドメインの絶対ディレクトリはhome/user/subdomainです。メインドメインディレクトリはhome/user/public_htmlです。フォームはhome/user/subdomain/form.phpにあります –

0

とあなたのサブドメインのルートディレクトリにあると仮定してあなたのメインドメインは自分のフォルダです(メインディレクトリに独自のフォルダがない場合は2番目のchdirを削除してください)

画像は必要に応じて変更しない場合

chdir(dirname("../"));// this takes you up one level 
chdir("main_directory");// use this only if main directory is inside a folder 

$filepath = getcwd() . DIRECTORY_SEPARATOR . 'images' .DIRECTORY_SEPARATOR; 
       if (!file_exists($filepath)) { 
        mkdir($filepath, 0755);// this is only to create a new images folder if it doesnt exist 
       } 
       chdir($filepath); 
       $filename = 'file_name_you_want'; 
       $info = pathinfo($_FILES['img']['name']); 
       $ext = $info['extension']; 
       $newname = $filename . "." . $ext; 
       $types = array('image/jpeg', 'image/jpg', 'image/png'); 
       if (in_array($_FILES['img']['type'], $types)) { 
        if (move_uploaded_file($_FILES["img"]["tmp_name"], $newname)) { 
         $img_path = 'images' . DIRECTORY_SEPARATOR . $newname; 

        } else { 
         // do what needs to be done 
        } 

youreのphpの7を使用している場合は、

dirname (string $path [, int $levels = 1 ]);// the 2nd param would be how many levels up you want to go and $path can be your current directory using __DIR__ 
+0

このようなことはできません:./public_html/uploads –

関連する問題