我正在尝试上传一些照片并使用 Laravel 函数中的构建来处理这个问题。但我一生都无法弄清楚如何正确地做到这一点。我已经能够实际上传一些东西,但我遇到了一些问题。这是我现在拥有的代码:
如果查看文档,发现这个函数:$file = Input::file('photo');
我用过这个函数,它的内容$file
是一个 的实例Symfony\Component\HttpFoundation\File\UploadedFile
,正如文档告诉我们的,“扩展了 PHP SplFileInfo 类并提供了多种方法与文件交互。” http://laravel.com/docs/4.2/requests#files
然后我使用了这个函数Input::file('photo')->move($destinationPath);
,它应该是服务器上所需文件夹中的文件。它确实做到了。但现在问题来了。现在所有上传的文件都有一个类似的文件名phpgoJnLc
,并且没有扩展名。
我查看了可用的函数SplFileInfo
并尝试getExtension
了它给我一个空字符串,getFilename
它也给了我类似phpgoJnLc
.
然后我在互联网上环顾四周,发现了 Laravel 3 的一些代码,他们做了这样的事情:
$filename = Str::random(20) .'.'. File::extension(Input::file('photo.name'));
但是这样做的结果是只给我Str::random(20)
一个点的结果。同样,没有文件扩展名。
那么,我做错了什么?如何使用 Laravel 4 上传文件?