我有我的Laravel项目,将保存文件(txt或csv)后进行一些计算。
我正在寻找保存这些文件的最佳实践。也许/资源/csv/……?
第二个问题,从类中引用这个路径的最佳方式是什么?在.env文件中设置abs路径?是否存在返回资源路径的laravel方法?
/resources不是最好的位置,因为这个文件夹用于源文件,并且通常存储在源代码存储库中(例如git)。
应用程序生成的文件通常在/storage文件夹的某个地方结束-只需在那里创建一个/storage/csv文件夹。
永远不要直接从类中引用这些文件。Laravel的文件系统是你所需要的——你可以在这里阅读更多关于它们的信息:http://laravel.com/docs/master/filesystem。它们使对文件的操作(如读、写、前置、追加、删除、移动、获取所有文件以及更多…)更加简单。
在config/filesystems.php 中定义一个文件系统'disks' => [
'csv' => [
'driver' => 'local',
'root' => storage_path().'/csv',
],
],
现在你可以通过Storage facade从代码中的任何地方读取/写入csv文件,就像这样:
Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');
您可以将文件保存在存储文件夹中。
例如:
您可以在存储文件夹中创建一个名为csv的文件夹,获取路径如下:
storage_path().'/csv';
您可以在
Laravel 4.2: app>storage
Laravel 5+:根目录
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();
}