回答
第一步是在這裏開始處理上傳的文件:
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");
}
}
?>
您需要進行兩次編輯。 $uploads_dir
需要有一個相對路徑來指定文件的上傳位置。假設您的表單位於您的子域的根目錄subdomain.example.com/
中,並且您想將其移至public_html/uploads
。您的新$uploads_dir
看起來應該如下:
$uploads_dir = __DIR__ . '/../public_html/uploads';
__DIR__
會給你你的PHP文件在運行當前導演這允許您創建到其他目錄的相對路徑。
第二次編輯是更新$_FILES
數組以循環上傳正確的結構。它可能不是圖片中的例子。
這是一個好主意,定義路徑上傳到您的應用程序的某個地方。這可以在數據庫中存儲每個文件的詳細信息,也可以在應用程序配置中。要麼工作。 – McRed
請將主目錄設置爲/ home/user,在此目錄中我們有public_html和子域。所以子域絕對目錄是home/user/subdomain。而主要的域名目錄是home/user/public_html ...並且表單位於home/user/subdomain/form.php –
這將是一個快速骯髒的方式來做到這一點(假設你在你的子域的根目錄,你的主域是它自己的文件夾(如果你的主目錄沒有自己的文件夾刪除第二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
}
如果你使用的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 –
- 1. Azure文件存儲 - 在嵌套目錄中上傳文件
- 2. 上傳文件但目錄不存在
- 3. Django的夾層上傳文件 - 如何創建上傳目錄
- 4. 通過一個表單域在Django中上傳多個文件
- 5. Ant-Design上傳如何將文件上傳到項目文件中的目錄
- 6. PHP上傳一個文件到選定的子目錄
- 7. 如何配置S3BotoStorage或collectstatic上傳到S3存儲子目錄
- 8. 如何將文件/目錄上傳到存儲桶中的文件夾?
- 9. 如何允許用SSH上傳主目錄以外的文件?
- 10. 文件上傳並保存到目錄
- 11. 多文件上傳並將它們存儲在目錄中
- 12. 如何將上傳的文件保存在本地主機上?
- 13. Django的文件上傳:上傳表單沒有保存方法
- 14. PHP文件上傳目錄
- 15. 如何設置上傳目錄? PHP,jQuery文件上傳
- 16. 使用PHP創建目錄,在另一個域帳戶上上傳文件
- 17. 從存儲不上傳Temp png文件
- 18. 如何在根域上傳文件,而在子域
- 19. 如何將上傳的文件存儲在文件系統中?
- 20. PHP文件上傳,目標目錄上方upload.php文件目錄
- 21. 多個文件上傳僅上傳單個帖子
- 22. HTML上傳表格只會上傳PHP文件目錄中找到的文件
- 23. 如何將一個文件夾上傳到Azure存儲
- 24. 如何使用boto將文件上傳到S3存儲桶中的目錄
- 25. 如何重命名上傳文件以存儲在單個文件夾中
- 26. 上傳兩個文件在一個表單上?
- 27. 如何cakephp2.5 +上傳圖片,並將其存儲在根目錄文件夾
- 28. NodeJs - Loopback:如何上傳谷歌雲存儲上的文件
- 29. 從WordPress主題上傳文件到WWW目錄
- 30. 用Django上傳多個表單域的文件?
您的Web服務器文件夾結構如何?通常,你會發現像Linux/Apache的'/ var/www/html'和'/ var/www/subdomain /'。 – McRed
有些像public_html /主域名和subdomain.example.com/子域名...子域名文件夾不在public_html –
這些文件是否已經存在於子域中,或者您是否通過表單上傳文件? – McRed