からメインドメインのディレクトリにアップロードされたファイルを格納する方法、それはこのようにする必要があり、私のメインのドメインディレクトリにアップロードされたファイルを保存することができますしてください:これは速いだろうどのようにサブドメインのアップロードフォーム
move_uploaded_file(https://example.com/uploads)
からメインドメインのディレクトリにアップロードされたファイルを格納する方法、それはこのようにする必要があり、私のメインのドメインディレクトリにアップロードされたファイルを保存することができますしてください:これは速いだろうどのようにサブドメインのアップロードフォーム
move_uploaded_file(https://example.com/uploads)
最初のステップは、ハンドリングとここに開始することである文字列を見てみたいかもしれませんが、ファイルをアップロード:
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
アレイを更新して、アップロードするものの適切な構造をループすることです。この例のように写真ではないかもしれません。
アプリケーションのどこかにアップロードするパスを定義することをお勧めします。これは、各ファイルの詳細と共に格納されたデータベースに存在することも、アプリケーションの設定に含めることもできます。いずれも動作します。 – McRed
ホームディレクトリは/ home/userです。このディレクトリにはpublic_htmlとサブドメインがあります。サブドメインの絶対ディレクトリはhome/user/subdomainです。メインドメインディレクトリはhome/user/public_htmlです。フォームはhome/user/subdomain/form.phpにあります –
とあなたのサブドメインのルートディレクトリにあると仮定してあなたのメインドメインは自分のフォルダです(メインディレクトリに独自のフォルダがない場合は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__
このようなことはできません:./public_html/uploads –
ウェブサーバーのフォルダはどのように構造化されていますか?通常、Linux Apacheの場合は '/ var/www/html'や'/var/www/subdomain/'のようなものがあります。 – McRed
メインドメインの場合はpublic_html /サブドメインの場合はsubdomain.example.com/のようになります。サブドメインのフォルダはpublic_htmlにありません –
これらのファイルはサブドメインに既に存在しているのですか、フォームを使用してアップロードしていますか? – McRed