[英]Incorrect file upload path in Laravel
我是 Laravel 的初學者。
我在我的項目中使用 Laravel 5.8。
我使用這個組件: CkEditor + https://github.com/UniSharp/laravel-filemanager 。
上傳文件時,他們可以上傳到存儲/應用程序。 我希望它們可以從網站上獲得並位於文件夾中:public/upload
我的 lfm.php 文件:
return [
/*
|--------------------------------------------------------------------------
| Routing
|--------------------------------------------------------------------------
*/
'use_package_routes' => true,
// // Use relative paths (without domain)
// 'relative_paths' => false,
/*
|--------------------------------------------------------------------------
| Multi-User Mode
|--------------------------------------------------------------------------
*/
'allow_multi_user' => false,
'allow_share_folder' => true,
/*
|--------------------------------------------------------------------------
| Folder Names
|--------------------------------------------------------------------------
*/
// Flexible way to customize client folders accessibility
// If you want to customize client folders, publish tag="lfm_handler"
// Then you can rewrite userField function in App\Handler\ConfigHandler class
// And set 'user_field' to App\Handler\ConfigHandler::class
// Ex: The private folder of user will be named as the user id.
'user_folder_name' => UniSharp\LaravelFilemanager\Handlers\ConfigHandler::class,
'base_directory' => 'public',
'shared_folder_name' => 'upload',
'thumb_folder_name' => 'thumbs',
'files_folder_name' => 'file',
'images_folder_name' => 'img',
'folder_categories' => [
'file' => [
'folder_name' => 'upload',
'startup_view' => 'grid',
'max_size' => 50000, // size in KB
'valid_mime' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/svg+xml',
],
],
'image' => [
'folder_name' => 'photos',
'startup_view' => 'list',
'max_size' => 50000, // size in KB
'valid_mime' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/svg+xml',
'application/pdf',
'text/plain',
],
],
],
/*
|--------------------------------------------------------------------------
| Upload / Validation
|--------------------------------------------------------------------------
*/
'disk' => 'public',
'rename_file' => false,
'alphanumeric_filename' => false,
'alphanumeric_directory' => true,
'should_validate_size' => false,
'should_validate_mime' => true,
// permissions to be set when create a new folder or when it creates automatically with thumbnails
'create_folder_mode' => 0755,
// permissions to be set on file upload.
'create_file_mode' => 0644,
// If true, it will attempt to chmod the file after upload
'should_change_file_mode' => true,
// behavior on files with identical name
// setting it to true cause old file replace with new one
// setting it to false show `error-file-exist` error and stop upload
'over_write_on_duplicate' => false,
/*
|--------------------------------------------------------------------------
| Thumbnail
|--------------------------------------------------------------------------
*/
// If true, image thumbnails would be created during upload
'should_create_thumbnails' => false,
// Create thumbnails automatically only for listed types.
'raster_mimetypes' => [
'image/jpeg',
'image/pjpeg',
'image/png',
],
'thumb_img_width' => 200,
'thumb_img_height' => 200,
/*
|--------------------------------------------------------------------------
| jQuery UI options
|--------------------------------------------------------------------------
*/
'resize_aspectRatio' => false,
'resize_containment' => true,
/*
|--------------------------------------------------------------------------
| File Extension Information
|--------------------------------------------------------------------------
*/
'file_type_array' => [
'pdf' => 'Adobe Acrobat',
'doc' => 'Microsoft Word',
'docx' => 'Microsoft Word',
'xls' => 'Microsoft Excel',
'xlsx' => 'Microsoft Excel',
'zip' => 'Archive',
'gif' => 'GIF Image',
'jpg' => 'JPEG Image',
'jpeg' => 'JPEG Image',
'png' => 'PNG Image',
'ppt' => 'Microsoft PowerPoint',
'pptx' => 'Microsoft PowerPoint',
],
'file_icon_array' => [
'pdf' => 'fa-file-pdf-o',
'doc' => 'fa-file-word-o',
'docx' => 'fa-file-word-o',
'xls' => 'fa-file-excel-o',
'xlsx' => 'fa-file-excel-o',
'zip' => 'fa-file-archive-o',
'gif' => 'fa-file-image-o',
'jpg' => 'fa-file-image-o',
'jpeg' => 'fa-file-image-o',
'png' => 'fa-file-image-o',
'ppt' => 'fa-file-powerpoint-o',
'pptx' => 'fa-file-powerpoint-o',
],
/*
|--------------------------------------------------------------------------
| php.ini override
|--------------------------------------------------------------------------
|
| These values override your php.ini settings before uploading files
| Set these to false to ingnore and apply your php.ini settings
|
| Please note that the 'upload_max_filesize' & 'post_max_size'
| directives are not supported.
*/
'php_ini_overrides' => [
'memory_limit' => '256M',
],
];
傳統上傳工作正常(上傳文件到public/upload目錄):
$file->move(public_path($path), $uniqueName . '.' . $extension);
你怎么能修好呢?
為此,您需要遵循框架指南,這是您在開發時使用它的最佳實踐。
作為參考,代碼示例您可以在文檔中找到任何內容: https : //laravel.com/docs/5.8/filesystem
編輯:
要保存在公共文件夾中是相同的邏輯,請嘗試Storage::disk('public')->put('filename', $file_content);
Storage::disk()
方法可以指向要放置文件的目錄,但這是在 5.8 中,我不知道您使用的是哪個版本,但我想這是從 5.2/3 開始工作的,退房並讓我們知道它有效。
編輯文件“config/filesystems.php”
從
'root' => storage_path('app/public'),
到
'root' => storage_path('../public/storage')
請遵循以下步驟:轉到config / filesystem.php,然后將其更改為:
'disks' => [
'local' => [
'driver' => 'local',
'root' => public_path(),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.