图片上传表格laravel

用户名

我的图片上传无效:

控制器:

if (Input::hasFile('image')) {
        $bikecreate->image = Input::file('image');
        $destinationPath = public_path().'/upload/';
        $filename = str_random(6) . '_' . $bikecreate->users_id ;
        Input::file('image')->move($destinationPath, $filename);
    }

形式:

{{ Form::file('image', array('files' => true)) }}

接受表单后,一切看起来都很好,但是在上传结束后,数据库中的文件路径在我的服务器上显示为.tmp / file。

亚历克斯

没有看到其余的代码,很难确切了解正在发生的事情,但是我的猜测是,您所在的行$bikecreate->image = Input::file('image')是您设置数据库文件路径的地方。您实际上已经将UploadedFile实例设置为该实例的image属性$bikecreate,大概是在序列化为要放入数据库的对象时__toString()调用实例

__toString()调用File实例(实例本身继承__toString自SPLFileInfo)返回该文件的路径。因此,您认为您已获取上载的文件名,但实际上由于上载的文件实际上是PHP中的一个临时文件,因此获得了该临时名称。

尝试将该行更改为以下内容:

$bikecreate->image = Input::file('image')->getClientOriginalName();

这将检索上载文件的实际原始名称,而不是PHP为其指定的临时路径。

毋庸置疑,这仅与UploadedFiles有关,普通文件应该仅能被__toStringed获取文件的路径,尽管您会注意到它将是完整路径而不是基本名称。为此,请使用getBaseName()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章