我是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);
如何解决?
答案 0 :(得分:0)
为此,您需要遵循框架准则,这是在使用框架准则进行开发时的最佳实践。
作为示例代码,您可以在文档中找到任何内容:https://laravel.com/docs/5.8/filesystem
编辑:
要保存在公用文件夹中是相同的逻辑,请尝试flutter pub global run peanut
Storage::disk('public')->put('filename', $file_content);
方法,您可以指向要放置文件的目录,但这是在5.8中,我不知道您正在使用什么版本,但是我想这是从5.2 / 3版本开始起作用的,请查看并让我们知道它已经起作用。
答案 1 :(得分:0)
编辑文件“config/filesystems.php”
来自
'root' => storage_path('app/public'),
到
'root' => storage_path('../public/storage')
答案 2 :(得分:-1)
请遵循以下步骤: 转到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',
],