Kop*_*pty 4 php laravel laravel-dusk
我有一个文件上传器,我为其编写了以下测试:
$browser->visit('/product/professional-photo-prints')
->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)
那不上传文件。也没有错误。
但是,当我这样做时:
$browser->visit('/product/professional-photo-prints')
->tinker();
Run Code Online (Sandbox Code Playgroud)
一旦进入 Tinker 启动的终端,当我输入与测试中使用的完全相同的文件上传命令时:
$browser->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)
...有用。我可以看到我的 Chrome 实例上传文件等。
我一生都无法弄清楚从测试本身运行的命令或从 Tinker 运行的命令之间有什么区别。
任何帮助将不胜感激。谢谢。
PS我正在使用 Laravel 5.5 和 Dusk 2.0
DIR魔术常量指的是正在执行的文件的父文件夹。
->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)
当然这个路径没有找到文件。你应该尝试这个:
->attach('photo', storage_path('app/public/testing/test_upload.jpg'));
Run Code Online (Sandbox Code Playgroud)