cancel
Showing results for 
Search instead for 
Did you mean: 

Save the uploaded file during registration

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Save the uploaded file during registration

I want every user need to upload the business registration document while registration. I have created the custom fields to upload the document, I can save the file name in database and it showing in customer grid also but how to save the uploaded document in our file-manager/server and how to access the file from admin(Customer Grid).

 

InstallData.php

<?php
namespace MyModules\CustomerUploadFile\Setup;
use Magento\Framework\Module\Setup\Migration;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

/**
 * @codeCoverageIgnore
 */
class InstallData implements InstallDataInterface
{

    protected $_logger;

    /**
     * Constructor
     * @param \YourNamespace\YourModule\Logger\Logger $logger

    */

    /**
     * Customer setup factory
     *
     * @var \Magento\Customer\Setup\CustomerSetupFactory
     */
    private $customerSetupFactory;
    /**
     * Init
     *
     * @param \Magento\Customer\Setup\CustomerSetupFactory $customerSetupFactory
     */
    public function __construct(\Magento\Customer\Setup\CustomerSetupFactory $customerSetupFactory)
    {
        $this->customerSetupFactory = $customerSetupFactory;
    }
    /**
     * Installs DB schema for a module
     *
     * @param ModuleDataSetupInterface $setup
     * @param ModuleContextInterface $context
     * @return void
     */
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $installer = $setup;
        $installer->startSetup();

        $customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
        $entityTypeId = $customerSetup->getEntityTypeId(\Magento\Customer\Model\Customer::ENTITY);

        $customerSetup->addAttribute(\Magento\Customer\Model\Customer::ENTITY, "business_registration_file",  array(
            "type"     => "varchar",
            "backend"  => "",
            "label"    => "Business Registration Doc.",
            "input"    => "file",
            "source"   => '',
            "visible"  => true,
            "required" => true,
            "default"  => "",
            "frontend" => "",
            "unique"   => false,
            "note"     => "",
            "is_used_in_grid"       => true,
            "is_visible_in_grid"    => true,
            "is_filterable_in_grid" => true,
            "is_searchable_in_grid" => true

        ));
        $regulation = $customerSetup->getEavConfig()->getAttribute(\Magento\Customer\Model\Customer::ENTITY, 'business_registration_file');
        $used_in_forms[]="customer_account_edit";
        $used_in_forms[]="customer_account_create";      
        $used_in_forms[]="adminhtml_customer";

        $regulation->setData("used_in_forms", $used_in_forms)
            ->setData("is_used_for_customer_segment", true)
            ->setData("is_system", 0)
            ->setData("is_user_defined", 1)
            ->setData("is_visible", 1)
            ->setData("sort_order", 100);
        $regulation->save();



        $installer->endSetup();
    }


}
?>

 

additionalinfocustomer.phtml

<fieldset class="fieldset create account" data-hasrequired="<?php /*@escapeNotVerified */ echo __('* Required Fields') ?>">
 <div class="field upload_file required">
         <label for="business_registration_file"><?php echo $this->__('Business Registration Doc.') ?><span class="required">*</span></label><br />
         <div class="control">
            <input type="file" name="business_registration_file" id="business_registration_file" title="<?php echo $this->__('Business Registration Doc.') ?>" class="required-entry input-file" />
         </div>
     </div>
 </div>
 </fieldset>

Can anyone guide me how to do the remaining part to save the document.