在PHP Laravel 5中实现更新概要文件图片的最佳实践是什么?

时间:2015-06-15 12:37:49

标签: javascript php jquery laravel laravel-5

我正在尝试让我的用户更新他们的个人资料照片,我想知道在Laravel中实现类似内容的最佳做法是什么。

以下是我的用户个人资料图片。当它们悬停在它上面时,他们可以选择更新照片。

enter image description here

当用户点击相机徽标或更新个人资料图片时,我想带上这个文件上传窗口。

enter image description here

不幸的是,我可以做到这一点。

我试过

{!! Form::model($user, array('route' => array('user.update_profile_picture', $user->id ),'method' => 'PUT')) !!}

<a class="pmop-edit">
  <i class="md md-camera-alt"></i>
  <span class="hidden-xs">Update Profile Picture</span>
</a>

{!! Form::hidden('$id', $user->id)!!}
{!! Form::close()!!}

我现在不确定下一步该做什么。一点点推动将非常感激。

有人可以对此有所了解吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我不确定这是否是最佳做法,但您可以尝试使用Laravels表单构建器功能

{!! Form::file('image', null) !!}

您还需要将以下内容添加到Form :: open array 'files' => true

此页面也可能有助Processing File Uploads With Laravel 5

我没有测试过代码,但我做了类似的事情。

希望这有帮助。

答案 1 :(得分:0)

我这样解决了它

HTML

{!! Form::model($user, array('route' => array('user.update_profile_picture', $user->id ),'method' => 'PUT')) !!}

<a class="pmop-edit" >
<span id="file-upload" >
  <i class="md md-camera-alt"></i>
  <span class="hidden-xs">Update Profile Picture</span>
</span>
  <div style='height: 0px;width: 0px; overflow:hidden;'>
    <input id="upfile" type="file" value="upload" onchange="sub(this)" />
  </div>
</a>

{!! Form::hidden('$id', $user->id)!!}
{!! Form::close()!!}

<强> JS

$(document).ready(function(){

    $("#file-upload").on("click", getFile);
    $("#upfile").on("change", sub);

    function getFile() {
        document.getElementById("upfile").click();
    }

    function sub(obj) {
        var file = obj.value;
        var fileName = file.split("\\");
        document.getElementById("file-upload").innerHTML = fileName[fileName.length - 1];
        document.myForm.submit();
        event.preventDefault();
    }

});

希望这有助于像我这样的人。 :)