1

I need to save an uploaded file to the database preferrably in the table core_file_storage as a blob and retrieve it later. I want this connected to a customer. Currently the files are being saved in the file system and this needs to be discontinued.

Solved: I used the model mage/core/file/Model/storage/database.php methods to write into the table core_file_storage

1

Not sure why you are discontinuing storing files in filesystem, storing in DB is not recommended as your DB will get huge quickly.

What is the table schema? You can save blob files by getting file content using file_get_contents PHP function.

Try something like this, after replacing below with your real data:

Mage::getModel('core/file_storage')
->setCustomerId($custId)
->setYourFile(file_get_contents('/path/to/file.ext'))
->save();

And then fetching:

Mage::getModel('core/file_storage')->load($custId);
$blobFile = $cust->getYourFile();

//And to display in frontend... if an image:

header("Content-type: image/jpg"); //Send the content Type here.
echo $blobFile;
  • Actually my requirement is as follows, Customers are allowed to upload customer specific documents and that gets saved to their account. Right now the customer will upload a .docx file and that gets saved in the file system. Moving forward I want to save it in the core_file_storage table. I saw a class Mage_Core_Model_File_Storage_Database in app/code/Mage/Core/Model/File/Storage/Database.php which could be used to save the file. But I am very new to magento so i am not able to move forward. – Magento_Newbie Oct 28 '14 at 22:56
  • the core_file_storage table has file id, content(blob), upload_time, filename, directory_id, directory as columns – Magento_Newbie Oct 28 '14 at 23:01
  • ah i see.. core_file_storage table is used by Magento for storing media files in that table, when you have enabled it at Config>Advanced>System>Storage config for media. Make your custom module with DB. – Kalpesh Oct 28 '14 at 23:29
  • May I know the reason why you want to keep files in DB? That's not good practice and can cause performance issue. – Kalpesh Oct 28 '14 at 23:30
  • It is a decision made by the software architect. I am just a developer – Magento_Newbie Oct 29 '14 at 17:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.