Yii2显示存储在BLOB数据库字段中的图像

安德烈·卡斯特罗(AndréCastro)

你好

我需要在Yii2的LISTVIEW或类似小部件中显示存储在BLOB数据库字段中的图像

我有actionCreate将图像保存在名为honra的表中作为BLOB

public function actionCreate()
{
    $model = new Honra();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        $file = UploadedFile::getInstance($model,'binaryfile');
        $model->binaryfile=$file;
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

我也有一个叫Honra的模型

class Honra extends \yii\db\ActiveRecord{

public static function tableName()
{
    return 'honra';
}

/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['nome', 'texto'], 'required'],
        [['texto', 'binaryfile'], 'string'],
        [['ativo'], 'integer'],
        [['nome'], 'string', 'max' => 255],
        [['fileName'], 'string', 'max' => 100],
        [['fileType'], 'string', 'max' => 50]
    ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => Yii::t('app', 'ID'),
        'nome' => Yii::t('app', 'Nome'),
        'texto' => Yii::t('app', 'Texto'),
        'fileName' => Yii::t('app', 'File Name'),
        'fileType' => Yii::t('app', 'File Type'),
        'binaryfile' => Yii::t('app', 'Binaryfile'),
        'ativo' => Yii::t('app', 'Ativo'),
    ];
}

}

图像已成功存储在名为binaryfile的表字段中

我需要在LISTVIEW或类似小部件内的名为view2的视图中显示存储在数据库中的每个斑点图像

任何人都知道我需要在view2和HonraController中放入什么代码块才能实现?

编辑

解决了

这是解决问题的代码,现在一切正常

public function actionCreate()
{
    $model = new Honra();

     if (Yii::$app->request->isPost) {

            $model->file = UploadedFile::getInstance($model, 'file');
            $filePath = 'uploadsimg/'  . $model->file->baseName . '.' . $model->file->extension;
            $model->fileName = $filePath;
            $model->save();

            $model->file->saveAs('uploadsimg/' . $model->file->baseName . '.' . $model->file->extension);
            if ($model->load(Yii::$app->request->post()) && $model->save()) {
                return $this->redirect(Url::toRoute(['create']));
            }
        }
        return $this->render('create', ['model' => $model]);
}

非常感谢MIHAI的帮助

Mihai P.

这是Yii2上的官方文档https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md非常简单。

一些评论:
1)这些照片可能是私人的,如果有人猜到别人的道路,这可能是一个大问题。在这种情况下,您可以将文件放在Web文件夹中,而不放在其他位置。如果执行此操作,则必须使用资产向它们显示assetManager-> getPublishedUrl('@ app / folder')?> / fav.ico
2)如果图片不太敏感,则可以将其保存在网络文件夹。

如您所见,您上传2次相同的文件名可能会遇到问题,因为1会覆盖其他文件。您可以随时重命名该文件,实际上我会将其代码更改为以下内容

        if ($model->file && $model->validate()) {
$model->file = UploadedFile::getInstance($model, 'file');
            $filePath = 'uploads/' . hash('ripemd160', microtime()) . $model->file->baseName . '.' . $model->file->extension;
            $model->fileName = $filePath;
            $model->save();

            $model->file->saveAs('uploadsimg/' . $model->file->baseName . '.' . $model->file->extension);
            if ($model->load(Yii::$app->request->post()) && $model->save()) {
                return $this->redirect(Url::toRoute(['create']));
            }
        }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii2显示来自Blob数据库字段的图像

来自分类Dev

根据yii2中数据库中的字段显示Gridview

来自分类Dev

以symfony显示存储在BLOB数据库中的图像

来自分类Dev

当路径在yii2中的数据库中时,输出存储在文件夹中的图像和视频

来自分类Dev

显示所有存储为MySQL数据库中BLOB数据的图像

来自分类Dev

yii2为什么我不能在数据库中存储数据?

来自分类Dev

Yii2在不使用GridView的情况下显示数据库中的数据

来自分类Dev

Yii2会话存储在数据库中,行太多了吗?表现?

来自分类Dev

如何比较YII2中的两个数据库表字段?

来自分类Dev

在PHP中显示数据库中的Blob图像

来自分类Dev

无法显示存储在数据库中的BLOB

来自分类Dev

无法显示存储在数据库中的BLOB

来自分类Dev

从Yii2中的数据库版本检查

来自分类Dev

在yii2中插入数据库吗?

来自分类Dev

yii2覆盖数据库类中的batchinsert

来自分类Dev

显示存储在数据库中的图像

来自分类Dev

显示存储在SQL数据库中的图像

来自分类Dev

yii2从数据库登录

来自分类Dev

使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

来自分类Dev

使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

来自分类Dev

Yii2图像名称未保存在数据库中,但保存在文件夹中

来自分类Dev

Yii2 Restful API:使用特定条件SQL将数据库中的数据显示为JSON格式

来自分类Dev

Yii2 Restful API:使用特定条件SQL将数据库中的数据显示为JSON格式

来自分类Dev

yii2复选框字段不在数据库中保存数据

来自分类Dev

在 h2 数据库中存储图像

来自分类Dev

Yii2数据库会话-存储其他属性和用户信息

来自分类Dev

Yii2:将列表框多选字段保存到数据库

来自分类Dev

Yii2将图像保存为base64数据库

来自分类Dev

使用Cassandra数据库Blob数据显示图像

Related 相关文章

  1. 1

    Yii2显示来自Blob数据库字段的图像

  2. 2

    根据yii2中数据库中的字段显示Gridview

  3. 3

    以symfony显示存储在BLOB数据库中的图像

  4. 4

    当路径在yii2中的数据库中时,输出存储在文件夹中的图像和视频

  5. 5

    显示所有存储为MySQL数据库中BLOB数据的图像

  6. 6

    yii2为什么我不能在数据库中存储数据?

  7. 7

    Yii2在不使用GridView的情况下显示数据库中的数据

  8. 8

    Yii2会话存储在数据库中,行太多了吗?表现?

  9. 9

    如何比较YII2中的两个数据库表字段?

  10. 10

    在PHP中显示数据库中的Blob图像

  11. 11

    无法显示存储在数据库中的BLOB

  12. 12

    无法显示存储在数据库中的BLOB

  13. 13

    从Yii2中的数据库版本检查

  14. 14

    在yii2中插入数据库吗?

  15. 15

    yii2覆盖数据库类中的batchinsert

  16. 16

    显示存储在数据库中的图像

  17. 17

    显示存储在SQL数据库中的图像

  18. 18

    yii2从数据库登录

  19. 19

    使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

  20. 20

    使用Rest Services,Java和Angular JS将存储在Mysql数据库中的图像显示为Blob

  21. 21

    Yii2图像名称未保存在数据库中,但保存在文件夹中

  22. 22

    Yii2 Restful API:使用特定条件SQL将数据库中的数据显示为JSON格式

  23. 23

    Yii2 Restful API:使用特定条件SQL将数据库中的数据显示为JSON格式

  24. 24

    yii2复选框字段不在数据库中保存数据

  25. 25

    在 h2 数据库中存储图像

  26. 26

    Yii2数据库会话-存储其他属性和用户信息

  27. 27

    Yii2:将列表框多选字段保存到数据库

  28. 28

    Yii2将图像保存为base64数据库

  29. 29

    使用Cassandra数据库Blob数据显示图像

热门标签

归档