首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YII:不点击保存按钮即可上传图片。

问YII:不点击保存按钮即可上传图片。
EN

Stack Overflow用户
提问于 2014-04-17 14:02:36
回答 1查看 492关注 0票数 0

我想直接上传图像时,用户通过ajax从列表中选择文件。我不希望他们点击保存按钮来上传它。

代码语言:javascript
复制
    <div class="form-group">
            <label for="Email" class="col-sm-2 control-label">Profile Picture</label>
            <div class="col-sm-10">
                <input type="file" name="profile_pic"/>
                <span class="login-error"><?php if (isset($error['profile_pic'])) echo $error['profile_pic'][0]; ?></span>
            </div>
            <div>
                <?php 
                    if(isset($model['profile_pic']))
                        echo '<img width="200" height="150" class="col-sm-4" src="/uploads/profile/'.$model['profile_pic'].'" alt="" />';
                ?>
            </div>
        </div>

这是我写的视图代码。

有没有人能建议我怎么做?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-17 14:21:01

您可以使用jQuery和jQuery Form plugin。

用<form>元素包装您的输入元素:

代码语言:javascript
复制
<form id="fileForm" method="POST" enctype="multipart/form-data" action="?">
     <input id="picInput" type="file" name="profile_pic"/>
</form>

并添加javascript:

代码语言:javascript
复制
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://malsup.github.com/min/jquery.form.min.js"></script>
<script>
    $(function(){
        var $form = $("#fileForm");

        $form.ajaxForm({
            iframe: true,
            success: function(src){
                    if (!src) return;

                    $("#picDiv").html('<img width="200" height="150" class="col-sm-4" src="/uploads/profile/'+src+'" alt="" />');
            }
        });

        $("#picInput").change(function(){
            $form.submit();
        });
    });
</script>

请注意,我将picDiv和div I用于包含图片和输入的picInput,因此您需要添加它们才能正常工作。

在你的控制器中,输出上传并保存的文件名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23125700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档