将请求中的文件移动或复制到多个位置
Move or copy a file from the request to multiple locations
我正在使用 Laravel 并接受输入和文件上传。该页面接受用户想要对订单进行的更改。最终目标是获取此输入并将其应用于多个订单。
我可以重复使用每个订单的输入。但是,什么是将请求中的文件复制到多个目录的好方法呢?例如,在文档中,我最初有:$request->file('photo')->move($destinationPath, $fileName);
这对一个订单来说工作正常。但现在我想将它应用于许多订单,我不能再从请求中移动同一个文件,因为它不存在。
而且 UploadedFile 对象似乎没有 copy()
方法。任何想法,将不胜感激。谢谢。
不要过度依赖组件。保持简单
$request->file('photo')->move($destination_path, $file_name);
//Add DIRECTORY_SEPARATOR between path and filename if needed
copy($destination_path.$file_name, $new_path.$new_file_name);
如果我假设这些文件将保持不变(您不允许您的用户按顺序修改这些文件),我认为将文件的一份副本存储在服务器并使用数据库 table 来确定该文件属于哪个订单,并在 table 中管理它。您可能需要创建一个 files
table 和一个 file_order
table 并将其与您的 orders
table 建立多对多关系,但在最后,如果允许这些文件很大,可以为您节省很多 space,而且在我看来,它更易于管理。
在 Laravel 中,查看 vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php
,我希望您能了解文件的所有内容,以及他们如何管理文件。
如何复制文件、移动文件,删除一个文件里面都说的很清楚了
复制文件到Laravel,函数是:
/**
* Copy a file to a new location.
*
* @param string $path
* @param string $target
* @return bool
*/
public function copy($path, $target)
{
return copy($path, $target);
}
我觉得现在没什么可说的了。
就用那个
File::copy('file_name_with_full_path', 'target_directory_where_copy');
希望对您有所帮助。
我正在使用 Laravel 并接受输入和文件上传。该页面接受用户想要对订单进行的更改。最终目标是获取此输入并将其应用于多个订单。
我可以重复使用每个订单的输入。但是,什么是将请求中的文件复制到多个目录的好方法呢?例如,在文档中,我最初有:$request->file('photo')->move($destinationPath, $fileName);
这对一个订单来说工作正常。但现在我想将它应用于许多订单,我不能再从请求中移动同一个文件,因为它不存在。
而且 UploadedFile 对象似乎没有 copy()
方法。任何想法,将不胜感激。谢谢。
不要过度依赖组件。保持简单
$request->file('photo')->move($destination_path, $file_name);
//Add DIRECTORY_SEPARATOR between path and filename if needed
copy($destination_path.$file_name, $new_path.$new_file_name);
如果我假设这些文件将保持不变(您不允许您的用户按顺序修改这些文件),我认为将文件的一份副本存储在服务器并使用数据库 table 来确定该文件属于哪个订单,并在 table 中管理它。您可能需要创建一个 files
table 和一个 file_order
table 并将其与您的 orders
table 建立多对多关系,但在最后,如果允许这些文件很大,可以为您节省很多 space,而且在我看来,它更易于管理。
在 Laravel 中,查看 vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php
,我希望您能了解文件的所有内容,以及他们如何管理文件。
如何复制文件、移动文件,删除一个文件里面都说的很清楚了
复制文件到Laravel,函数是:
/**
* Copy a file to a new location.
*
* @param string $path
* @param string $target
* @return bool
*/
public function copy($path, $target)
{
return copy($path, $target);
}
我觉得现在没什么可说的了。 就用那个
File::copy('file_name_with_full_path', 'target_directory_where_copy');
希望对您有所帮助。