图像剂量不在文件夹路径移动

时间:2018-06-15 18:36:47

标签: php laravel laravel-5.2 laravel-5.1 laravel-5.3

我已将constructor(private activatedRoute: ActivatedRoute) {} replacePrarm(projectId) { // get current url const url = this.router.url; // get current params this.activatedRoute.params.subscribe((params: Params) => { if(params['projectId'] && params['userId']) { router.navigate(projectId, 'users', params['userId'], 'profile'], {relativeTo: route}); } else if (url[url.length - 1] === 'o') { router.navigate(projectId, 'info'], {relativeTo: route}); } else if (url[url.length - 1] === 's') { router.navigate(projectId, 'users'], {relativeTo: route}); } }); } 提供给我的777 permission文件夹。 images也保存了所有图像记录。我将在这里附上table:Charts Table结构。

enter image description here

charts

5 个答案:

答案 0 :(得分:1)

尝试将目标路径从相对路径更改为绝对路径

public function store(Request $request)
{
    $input = $request->all();
    $tradeID= Auth::user()->trade()->create($input);

    if($file = $request->file('file'))
    {
        $name = time() . $file->getClientOriginalName();
        $file->move( public_path() . '/images/', $name);  // absolute destination path
        $photo = Chart::create(['file'=>$name]);
        $input['photo_id'] = $photo->id;
    }
        $tradeID->chart()->create($input);
}

答案 1 :(得分:0)

您是否尝试移动上传的文件或现有文件?

要移动您需要执行的文件:

File::move($oldPath, $newPath);

旧路径和新路径应包含带文件名(和扩展名)的完整路径

要存储您需要执行的上传文件:

Storage::disk('diskname')->put($newPath, File::get($file));

新路径是带文件名(和扩展名)的完整路径。

  • 磁盘是可选的,您可以使用Storage::put() ..
  • 直接存储文件
  • 磁盘位于config/filesystems.php

File::get($file)$file是来自帖子请求$file = $request->file('file')的输入,基本上它会获取上传文件的内容。

UPD#1

好的,你可以这样做:

$request->file('file')->store(public_path('images'));

或使用Storage class:

    // get uploaded file
    $file = $request->file('file');
    // returns the original file name.
    $original = $file->getClientOriginalName();
    // get filename with extension like demo.php
    $filename = pathinfo($original)['basename'];
    // get public path to images folder
    $path = public_path('images');
    // concat public path with filename
    $filePath = $path.'/'.$filename;
    // store uploaded file to path
    $store = Storage::put($filePath, File::get($file));

答案 2 :(得分:0)

试试这个

if($file = $request->file('file'))
{
    $name = time() . $file->getClientOriginalName();
    $path = $file->storeAs('images', $name,'public');
    $photo = Chart::create(['file'=>$name]);
    $input['photo_id'] = $photo->id;
}

您可以使用/storage/public/file_name/file_name来检索文件,具体取决于您告诉laravel存储公共文件的位置

答案 3 :(得分:0)

您实际上并未存储该文件,实际上您正在移动一个不存在的文件。

您可能会考虑什么 您,很可能想要从公共路径访问上传的文件。如果是这样,您应该将此文件存储到存储目录中的特定文件夹,并在公共路径中创建该目录的符号链接。 这是一个例子:

Storage::disks('public')->put($filename, $uploadedFile); // filename = 'images/imageFile.jpg'

这会在storage/app/public/images目录中创建一个文件。

然后,您可以创建一个符号链接,laravel提供一个简单的命令来执行此操作。

php artisan storage:link

这会为您的公共磁盘创建一个符号链接。

然后,您可以访问http://your-site-server/storage/images/imageFile.jpg

上的图片

希望它有所帮助。

答案 4 :(得分:0)

 $name = time().'.'. $file->getClientOriginalName(); //depends on ur requirement
        $file->move(public_path('images'), $name);