【问题标题】:How can I make a Xml output to file?如何将 Xml 输出到文件?
【发布时间】:2018-09-14 09:32:18
【问题描述】:

我有一个 xml 输出。我将数组转换为 xml。但是如何将此输出转换为文件?我需要将此文件存储在我的存储文件夹中,因为我想在必要时下载它。所以想象一下这样的事情:

  1. 鉴于我们有一张桌子

  2. 然后我们将表格数据转成xml。

  3. 那么它应该存储为一个xml文件

  4. 当我们按下按钮时

  5. 它应该下载为 xml 文件。

我需要最后 3 个步骤才能让它工作。非常感谢..

【问题讨论】:

  • 您能否发布一些代码来说明您尝试解决的问题以及您遇到的问题的描述?

标签: xml laravel filesystems storage


【解决方案1】:

我认为这对你的任务应该足够了。

来自 laravel 文档:

  1. https://laravel.com/docs/5.7/filesystem#storing-files

  2. https://laravel.com/docs/5.7/filesystem#retrieving-files

【讨论】:

  • 啊,谢谢。存储::put('file.jpg', $contents);这足以将内容转换为文件,对吗?请问,put方法的第一个参数应该是文件名还是地名?我的意思是 laravel 如何知道应该是什么类型的文件?
  • 您可以指定 .xml,如您在示例中看到的 .jpg。第一个参数是路径,单个文件名也是路径。尝试创建 put('name_of_file.xml', $xml_code) 并检查存储文件夹,尝试找到 laravel 创建文件的位置。在您可以添加特定路径之后(例如 path/to/your/folder/name_of_file.xml、$xml_code)
【解决方案2】:

@Aleksandrs 回答后我想通了。并且问题解决了。

我做过类似的事情。

 public function downloadXml($filename = '')
{
    $fields = ['created_at', 'updated_at'];
    $products = Product::where('user_id', auth()->id())->exclude($fields)->get()->toArray();
    $products = array_collapse($products);

    // dd($products);
    $result = ArrayToXml::convert($products, 'product');

    Storage::put(auth()->id().'File/products.xml', $result);
}

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多