Php 在Laravel 5文件夹结构中,在何处保存文件?

Php 在Laravel 5文件夹结构中,在何处保存文件?,php,file,laravel,laravel-5,Php,File,Laravel,Laravel 5,我有我的Laravel项目,它将在进行一些计算后保存文件(txt或csv) 我正在寻找保存这些文件的最佳方法。 可能是/resources/csv/ 第二个问题,从类内引用此路径的最佳方式是什么? 在.env文件中设置abs路径? 是否有将返回资源路径的laravel方法?您可以将文件保存在存储文件夹中 例如: 您可以在storage folder中创建名为csv的文件夹,并获得如下路径: storage_path().'/csv'; 您可以在中找到存储文件夹 Laravel 4.2:应用程序

我有我的Laravel项目,它将在进行一些计算后保存文件(txt或csv)

我正在寻找保存这些文件的最佳方法。 可能是/resources/csv/

第二个问题,从类内引用此路径的最佳方式是什么? 在.env文件中设置abs路径?
是否有将返回资源路径的laravel方法?

您可以将文件保存在存储文件夹中

例如:

您可以在storage folder中创建名为csv的文件夹,并获得如下路径:

storage_path().'/csv';
您可以在
中找到存储文件夹

Laravel 4.2:应用程序>存储

Laravel 5+:根目录中的资源不是最佳位置,因为此文件夹用于源文件,通常存储在源代码存储库(例如git)中

应用程序生成的文件通常位于/storage文件夹中的某个位置—只需在那里创建一个/storage/csv文件夹即可

永远不要直接从类中引用这些文件。Laravel的文件系统正是您所需要的-您可以在此处阅读有关它们的更多信息:。它们使对文件的操作(如读取、写入、预处理、追加、删除、移动、获取所有文件等)更加简单

从在config/filesystems.php中定义文件系统开始

'disks' => [
  'csv' => [
    'driver' => 'local',
    'root'   => storage_path().'/csv',
  ],
],
现在,您可以通过存储facade从代码中的任何位置读取/写入csv文件,如下所示:

Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');

存储器_path()中的文件不能直接访问。Laravel的文件系统应该用于此目的——我当前的需要是创建文件,然后在同一执行中使用它。不具有“永久”文件引用。不管怎样,你提供的解决方案非常棒。谢谢,如果csv文件夹中有多个子文件夹。您建议如何直接访问它们?在config/filesystems.php中更好地定义更具体的条目?或者像Storage::disk('csv')。“/mysubdir/。/”(还不知道如何正确写入此文件…)将文件夹包含在传递给put/get的文件名中,例如->put('folder/file.csv',$content)。
public function storePhotos($data, Request $request, $requirement)
{
    //setlocale(LC_ALL, 'en_US.UTF-8'); //for spanish names
    $fileUploaded = $request->file('someVarFormName');
    $folder = 'docs/';

    $destinationFolder = date("Y-m");
    $destinationFolderInServer = $folder.$destinationFolder;//.'/';
    //$rules = array('file' => 'required|mimes:png,gif,jpeg,txt,pdf,doc,docx,exel,exelx'); //'required|mimes:png,gif,jpeg,txt,pdf,doc'
    $validator = Validator::make(array('file' => $fileUploaded), $rules);

    if($validator->passes())
    {
        $originalFileName = $fileUploaded->getClientOriginalName();
        $fileName = pathinfo($originalFileName, PATHINFO_FILENAME);
        $fileExtension = strtolower(pathinfo($originalFileName, PATHINFO_EXTENSION));

        $linkFilenameTemp = strtolower(ToolText::createLink($fileName));

        $linkFilename = $linkFilenameTemp.'.'.$fileExtension;

        //get versioin number if filename exist
        $i = 1;
        while(file_exists($destinationFolderInServer.'/'.$linkFilename))
        {
            $linkFilename = $linkFilenameTemp.'('.$i.').'.$fileExtension;
            $i++;
        }


        //* quitar / si falla
        $upload_success = $fileUploaded->move($destinationFolderInServer, $linkFilename);
        $dbRegOfFile = NULL;

        if($requirement->have_file)
            $dbRegOfFile = new mdl_TramitesRequisitosFiles();
        else
            $dbRegOfFile = mdl_TramitesRequisitosFiles::where('requisito_id', $requirement->id)
            ->get();

        $dbRegOfFile->requisito_id = $data['requirementId'];
        $dbRegOfFile->publisher = $data['publisher'];
        $dbRegOfFile->publisher_entity = $data['publisher_entity'];
        $dbRegOfFile->nice_name = $fileName;
        $dbRegOfFile->link_file_name = $linkFilename;
        $dbRegOfFile->extension = $fileName;
        $dbRegOfFile->size = $fileUploaded->getClientSize();
        $dbRegOfFile->save();

    }