Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
如何存储csv文件laravel 5 php?_Php_Laravel_Csv_Laravel 5 - Fatal编程技术网

如何存储csv文件laravel 5 php?

如何存储csv文件laravel 5 php?,php,laravel,csv,laravel-5,Php,Laravel,Csv,Laravel 5,每当我上传CSV文件后,该文件就会变成.txt 路径Iecho“$path”显示保存的文件格式是.txt而不是.csv 有没有办法用实际的.csv文件存储文件,或者我只是在某个地方出错了 这是我的表格 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Upload file</title> </head> <bod

每当我上传CSV文件后,该文件就会变成.txt

路径I
echo“$path”显示保存的文件格式是.txt而不是.csv

有没有办法用实际的.csv文件存储文件,或者我只是在某个地方出错了

这是我的表格

    <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Upload file</title>
</head>
<body>
    <form class="" action="{{URL::to('store')}}" enctype="multipart/form-data" method="post">
        <input type="file" name="csv" value="">
        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
        <br>
        <button type="submit" name="button">upload file</button>
    </form>
</body>
</html>

谢谢。

您可以将
->store('csv')
替换为
->storeAs('csv',filename.csv')
,为文件指定扩展名。如果不这样做,Laravel将根据文件内容(对于csv,基本上是文本)假定文件扩展名

您还可以使用
$request->file('csv')->getClientOriginalExtension()
获取用户提交文件时使用的文件名的文件扩展名。不过,用户可以故意更改此扩展名<代码>$request->file('csv')->extension()
将为您提供Laravel为该文件提供的文件扩展名

要生成这样的文件名散列,请使用
Str::random(40)
(系统本身也会使用)。因此,您可以使用以下内容:

$file = $request->file('csv');
$path = $file->storeAs('csv', \Str::random(40) . '.' . $file->getClientOriginalExtension());

谢谢你,先生!我是Laravel的新手,所以我不知道Laravel是否可以假定文件扩展名并更改扩展名。
csv/VKgVPMvwcQKqpqHAXZ1s6o1IyIbz5BkgQqjxotPc.txt
$file = $request->file('csv');
$path = $file->storeAs('csv', \Str::random(40) . '.' . $file->getClientOriginalExtension());