Php Laravel 5动态将图像移动到另一个文件夹

Php Laravel 5动态将图像移动到另一个文件夹,php,laravel,laravel-5,Php,Laravel,Laravel 5,我的应用程序中有一个文件上传模块。我可以在这里上传img/upload/{container\u id}/file\u name\中的文件 {container_id}将取决于用户将使用的文件夹 我遇到的问题是当他们试图将一条记录编辑到另一个文件夹时。他们上载的文件仍保留在旧文件夹中 我还想将文件移动到用户定义的新文件夹中 我这里有我的代码,我一直在移动文件 $attachments = Attachment::where('document_id',$id)->select('filen

我的应用程序中有一个文件上传模块。我可以在这里上传img/upload/{container\u id}/file\u name\中的文件

{container_id}将取决于用户将使用的文件夹

我遇到的问题是当他们试图将一条记录编辑到另一个文件夹时。他们上载的文件仍保留在旧文件夹中

我还想将文件移动到用户定义的新文件夹中

我这里有我的代码,我一直在移动文件

$attachments = Attachment::where('document_id',$id)->select('filename')->get();
        $document = Document::findOrFail($id);

        foreach($attachments as $attachment)
        {
            $attachment->filename = base_path().'/public/img/upload/'.$document->container_id."/".$attachment->filename;
        }

        Document::findOrFail($id)->update($request->all());

        $document = Document::findOrFail($id);

        $x = Attachment::where('document_id','=',$id)->count();

        foreach($attachments as $file)
        {

            HOW_DO_I_MOVE_THE_FILE????
            $x++;
        }

        return redirect('documents');

更新:

在您的情况下,应该使用
rename()

使用rename()不仅可以重命名,还可以移动!简单地说,如果第二个参数的路径不同。因此,可以在循环中使用附件路径作为第一个参数,使用目标路径作为第二个参数

文件:

下面是上传后移动的Laravel方法

从文件中:

$request->file('photo')->move($destinationPath);

$request->file('photo')->move($destinationPath, $fileName);
photo
是文件上载输入元素的名称

注意,如果您已多次上载,则可以使用数组表示法,例如:

foreach ($request->file('photo') as $photo)
{
    $photo->move($destinationPath, $chooseYourFileName);
}

更新:

在您的情况下,应该使用
rename()

使用rename()不仅可以重命名,还可以移动!简单地说,如果第二个参数的路径不同。因此,可以在循环中使用附件路径作为第一个参数,使用目标路径作为第二个参数

文件:

下面是上传后移动的Laravel方法

从文件中:

$request->file('photo')->move($destinationPath);

$request->file('photo')->move($destinationPath, $fileName);
photo
是文件上载输入元素的名称

注意,如果您已多次上载,则可以使用数组表示法,例如:

foreach ($request->file('photo') as $photo)
{
    $photo->move($destinationPath, $chooseYourFileName);
}

看一看move()方法,但我没有使用存储Facade。看一看这个问题似乎是重复的:@AmirBar现在我正在考虑使用存储facades,因为我认为它比我的方法更简单。谢谢看一看move()方法,但我不是在使用存储Facade。看一看这个问题似乎是重复的:@AmirBar现在我正在考虑使用存储facades,因为我认为它比我的方法更简单。谢谢,我试过了,但由于$attachments中的$fileName实际上不是一个文件,而是一个文件的“路径”,所以出现了错误我试过了,但由于$attachments中的$fileName实际上不是一个文件,而是一个文件的“路径”,所以出现了错误