Il problema è che non riesco a salvare il file su BLOB. Funziona senza alcun errore, il file temporaneo viene creato e posso leggerlo. Ho controllato se va a legare - sì va con il giusto valore delle risorse e con il tipo di dati \PDO::PARAM_LOB
.Yii2 salvataggio del file su Oracle BLOB
Ho una classe ActiveRecord:
class News extends ActiveRecord
{
public function rules()
{
return [
[
['image'],
'image',
'extensions' => 'png jpg',
'maxSize' => 1024 * 300,
]
];
}
public function beforeSave($insert)
{
$fileInfo = UploadedFile::getInstance($this, 'image');
$this->image = fopen($fileInfo->tempName, 'r+');
return parent::beforeSave($insert);
}
}
Tabella:
CREATE TABLE NEWS
(
RN NUMBER(17,0) PRIMARY KEY NOT NULL,
IMAGE BLOB
);
Logs mostrando questa query:
INSERT INTO "NEWS" ("IMAGE") VALUES (:qp4) RETURNING "RN" INTO :qp8
Così ha fatto in realtà non legarlo o cosa?
Mi dà ORA-01461: può associare un valore a lungo solo per inserimento in una colonna LONG – UnstableFractal
A giudicare da 'codice sorgente UploadedFile' - non c'è ragione per questo al lavoro. E, bene, dà ORA-01465: numero esadecimale non valido – UnstableFractal
È una transazione per me. – UnstableFractal