我有一个csv文件,其结构如下:
id,title,sub_title,filename
1,Title 1, Sub Title 1,filename_1.mp3
2,Title 2, Sub Title 2,filename_2.mp3
3,Title 3, Sub Title 3,filename_3.mp3
(...)
我在App \ Console \ Command(artisan命令)中加载CSV文件 假设文件系统上存在文件且路径正确,对于每个csv行,如何上传相关文件并使用Validator类对其进行验证?
我正在使用此代码:
$validator = Validator::make(array('filename' => 'path_to_filename_x.mp3'), [
'filename' => 'required|file|audio:mp3,wav,ogg',
]);
if ($validator->fails()) {
echo '<pre>';
print_r($validator->errors());
echo '</pre>';
die();
}
我收到错误:
&#34;属性必须是文件。&#34;
因为我发送文本而不是资源(我想)。
如何在不使用Laravel 5.6的表单的情况下上传这些文件?
THKS!
答案 0 :(得分:1)
问题:如何上传相关文件并使用Validator类进行验证?
验证文件:
在laravel中创建自定义规则,您可以在其中添加逻辑,如。
if(file_exists($path)){
//check for file type
}
上传文件:
使用$fcontent = file_get_contents($filepath)
和file_put_contents($newfilepath, $fcontent)