我在Symfony2中有一个表单并且在表格中我有一个照片输入字段,在上传照片文件后给我路径,但我会显示有关已上传照片的预览..
这是表单中添加的代码:
ADMINS =(('admin','xyz@gmail.com'),)
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
SERVER_EMAIL = 'xyz@gmail.com'
EMAIL_HOST_USER = 'xyz@gmail.com'
EMAIL_HOST_PASSWORD = '*****'
EMAIL_PORT = 587
SEND_BROKEN_LINK_EMAILS = True
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'mail_admins': {
'level': 'DEBUG',
'class': 'django.utils.log.AdminEmailHandler',
},
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'oodles/debug.log',
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins', 'file', ],
'level': 'DEBUG',
'propagate': True,
},
},
}
如何使用方法 onChange 或者您能给我显示上传照片预览的方法吗? 谢谢!
答案 0 :(得分:0)
您正在将文件存储到某个位置,然后将该路径存储到数据库,因此您需要为此添加条件,以显示图像。
您可以使用PhotoImage(文件)从我的表单传递图像值属性(我假设您的实体名称是Photo)这样的实体
'value' => file_exists(IMAGE_PATH.$builder->getData()->getPhotoImage()) ? $builder->getData()->getPhotoImage() : false )
这里
$builder->getData()->getPhotoImage()
为您提供PhotoImage实体值(如果有)和
IMAGE_PATH
是常量,用于存储根路径。
现在您的代码正在向您的表单发送照片路径,现在您必须获取该路径并显示给客户,以便在twig文件中显示此条件,以便您可以检查值是否为false。
为此您必须渲染自定义表单主题,如此处所述,只需添加此代码,如下面的代码 - link
{% if form.vars.block_prefixes[1] == "file" %}
<div class="file-box" {% if form.vars.attr.value is not defined or form.vars.attr.value %}style="background:url('{{form.vars.attr.value}}')"{% endif %}></div>
{% endif %}
{{ form_widget(form) }}
{{ form_label(form) }}
{% if form_errors(form) %}
{{ form_errors(form) }}
{% endif %}
form.vars.block_prefixes[1] == 'file'
将检查它是否是输入类型文件。
<div class="file-box">
会显示您的图片。
答案 1 :(得分:0)
根据Nikhil Chaudhary的回答,您可以在表单中显示:
{% if form.photo.vars.block_prefixes[1] == "file" and form.photo.vars.data %}
<img style="max-width: 100px" src="{{ asset(form.photo.vars.data) }}">
{% endif %}
您不需要检查文件,因为输入是文件,所以可以删除
form.photo.vars.block_prefixes[1] == "file"
阻止代码。
但如果您不想显示更改,请使用jQuery lib或自定义函数like this。