Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel 5在数据库中上载文件_Php_Mysql_Laravel_Laravel 5_Input - Fatal编程技术网

Php 使用Laravel 5在数据库中上载文件

Php 使用Laravel 5在数据库中上载文件,php,mysql,laravel,laravel-5,input,Php,Mysql,Laravel,Laravel 5,Input,我正在本地主机(本地服务器)中使用Laravel开发一个网站,在我的项目的某些部分中,我需要上传一些XML文件,以使用phpexcel api生成一个Excel文件。我的工作就是这样进行的: 1-我使用表单创建xml文件,并将它们存储在项目的公共目录中 2-当我想上传和使用这些xml文件时,我只是从输入中获取名称,并将它们添加到url中,以打开本地存储的文件(类似于这样:) 所以我的问题是:当我将我的网站上传到服务器上时,我是否需要将我的xml文件存储在数据库中以便以后可以使用它们,或者它们将被

我正在本地主机(本地服务器)中使用Laravel开发一个网站,在我的项目的某些部分中,我需要上传一些XML文件,以使用phpexcel api生成一个Excel文件。我的工作就是这样进行的:

1-我使用表单创建xml文件,并将它们存储在项目的公共目录中

2-当我想上传和使用这些xml文件时,我只是从输入中获取名称,并将它们添加到url中,以打开本地存储的文件(类似于这样:)


所以我的问题是:当我将我的网站上传到服务器上时,我是否需要将我的xml文件存储在数据库中以便以后可以使用它们,或者它们将被创建到服务器的公共目录中(就像在我的本地服务器中一样)?如果没有,最好的解决方案是什么

如果不想使用数据库在服务器中存储文件,则不需要使用数据库

如果您的远程服务器上运行一个普通的Laravel应用程序,那么在应用程序目录的根目录中可能有一个可写的
存储
文件夹,因此您可以这样做

$xmlFilename = 'whatevernameyouneedhere.xml';

$xml_tmu = simplexml_load_file($url) or die("Error: Cannot create object");

Storage::put($xmlFilename, $xml_tmu);
然后你可以使用

$xml = Storage::get($xmlFilename);

当然,如果您的存储文件夹可写入Web服务器用户(nginx、apache2、www data…),它可以在本地或远程工作。

如何存储数据(文件/db)是另一个问题。就个人而言,我不会将上载放在公共目录中,而是制作一个控制器,该控制器采用文件名并使用
fopen()
,而不是对同一服务器执行HTTP请求,这是毫无意义和不必要的。然后可以将内容传递到简单的xml中。而且,
DOMDocument
比简单的xml要好得多,请查看!我认为这里您不需要上传xml文件,因为您已经将它们转换为excel文件。Dp不在公共目录中上传文件我理解现在我不必存储在公共目录中,但我需要保存我的xml文件以在生成excel文件后使用它们,所以请?最好的方法是什么?好的,Jaffery way已经定义了一些关于文件上传的最佳实践。在本集中,您可以观看以下内容:
$xml = Storage::get($xmlFilename);