Symfony 上传的文件是';t在服务器上创建

Symfony 上传的文件是';t在服务器上创建,symfony,file-upload,doctrine-orm,Symfony,File Upload,Doctrine Orm,我正试图用Symfony2上传文件,但虽然我没有收到任何返回或日志中的错误,但上传的文件并没有在服务器上创建。我正在用一个虚拟的小文本文件测试上传 以下是文档实体的代码: 上载操作的路由: crmentite_upload: path: /upload defaults: { _controller: CrmEntiteBundle:Entite:upload } 下面是(简单的)小树枝: {{form_rest(form)} 以下是生成的HTML: <form

我正试图用Symfony2上传文件,但虽然我没有收到任何返回或日志中的错误,但上传的文件并没有在服务器上创建。我正在用一个虚拟的小文本文件测试上传

以下是文档实体的代码:

上载操作的路由:

crmentite_upload:
    path:   /upload
    defaults: { _controller: CrmEntiteBundle:Entite:upload }
下面是(简单的)小树枝:


{{form_rest(form)}
以下是生成的HTML:

<form enctype="multipart/form-data" action="/web/app_dev.php/upload" method="POST">
     <div class="form-group">
                    <span class="required" title="Ce champ est requis">*</span>
                    <label class="control-label required" for="form_name">Name</label>
                    <input type="text" id="form_name" name="form[name]" required="required" maxlength="255" class="form-control" />

    </div><div class="form-group">
                    <span class="required" title="Ce champ est requis">*</span>
                    <label class="control-label required" for="form_file">File</label>
        <div class="form-group"><div class="input-group"><span class="input-group-btn"><span class="btn btn-primary btn-file"><span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Parcourir&hellip; <input type="file" multiple></span></span><input type="text" class="form-control" readonly></div></div><!--div class="input-group col-md-10"><span class="input-group-btn"><span class="btn btn-primary btn-file"><span class="glyphicon glyphicon-folder-open"></span>&nbsp;Parcourir&hellip;<input type="file" id="form_file" name="form[file]" required="required"></span><input type="text" class="form-control" readonly></span></div-->

    </div><div><button type="submit" id="form_submit" name="form[submit]" class="btn btn">Submit</button></div>            <input type="hidden" id="form__token" name="form[_token]" class="form-control" value="p_JPyYzTR2Es37Eocp_X2WkG0GtrJUJH9_ZvyuEj29U" />
</form>

*
名称
*
文件
帕库里尔&赫利普;
提交
作为参考,我之前创建了具有正确权限的
uploads/docs
文件夹,并向doc表中添加了一条记录

一个
var_转储($this->getFile());退出()upload
函数中返回
NULL
,与
preUpload
函数相同。
$request->files
的转储是空的,就像
$\u files
一样。

在你的小树枝上试试这个:

<form {{ form_enctype(form) }} action="{{ path('youruploadactionroutename') }}" method="POST">
     {{ form_rest(form) }}
</form>
编辑: 输入字段没有表单的名称或id,这是html中的一个错误,更具体地说是在
field.html.twig中:

{% block file_widget -%}
    {% spaceless %}
        <div class="form-group">
            <div class="input-group">
                <span class="input-group-btn">
                    <span class="btn btn-primary btn-file">
                        <span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Parcourir&hellip; <input type="file" multiple>
                    </span>
                </span>
                <input type="text" class="form-control" readonly>
            </div>
        </div>
    {% endspaceless %}
{% endblock file_widget %}
{%block file_widget-%}
{%spaceless%}
帕库里尔&赫利普;
{%endspaceless%}
{%endblock文件\小部件%}
更正:

{# with error #}
{% block file_widget -%}
    {% spaceless %}
        <div class="form-group">
            <div class="input-group">
                <span class="input-group-btn">
                    <span class="btn btn-primary btn-file">
                        <span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Parcourir&hellip; <input type="file" multiple {{ block('widget_attributes') }}>
                    </span>
                </span>
                <input type="text" class="form-control" readonly>
            </div>
        </div>
    {% endspaceless %}
{% endblock file_widget %}
{有错误}
{%block file_widget-%}
{%spaceless%}
帕库里尔&赫利普;
{%endspaceless%}
{%endblock文件\小部件%}

您可以在upload函数中vardump一些$this->getFile(),以检查它是否至少已执行,以及文件是否正确设置。它返回
NULL
。@NawfalSerrar它只包含
{form(form)}
@NawfalSerrar preUpload函数中的varu dump也返回
NULL
。不幸的是它没有工作。顺便说一句,只有
form(form)
Symfony2已经生成了表单的enctype,它正确地检测到了
文件的类型。
。var\u dump请求是否至少有上传的文件$请求->文件它似乎没有包含它,请求文件包是空的。如果我转储所有请求,我只有
名称
提交
和作为回报的令牌。如果您的输入文件没有名称,我认为这是不正常的,已注释的html否则会有它为什么会被注释?当然可以,很乐意帮助:)
<form {{ form_enctype(form) }} action="{{ path('youruploadactionroutename') }}" method="POST">
     {{ form_rest(form) }}
</form>
->add('file', 'file')
{% block file_widget -%}
    {% spaceless %}
        <div class="form-group">
            <div class="input-group">
                <span class="input-group-btn">
                    <span class="btn btn-primary btn-file">
                        <span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Parcourir&hellip; <input type="file" multiple>
                    </span>
                </span>
                <input type="text" class="form-control" readonly>
            </div>
        </div>
    {% endspaceless %}
{% endblock file_widget %}
{# with error #}
{% block file_widget -%}
    {% spaceless %}
        <div class="form-group">
            <div class="input-group">
                <span class="input-group-btn">
                    <span class="btn btn-primary btn-file">
                        <span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Parcourir&hellip; <input type="file" multiple {{ block('widget_attributes') }}>
                    </span>
                </span>
                <input type="text" class="form-control" readonly>
            </div>
        </div>
    {% endspaceless %}
{% endblock file_widget %}