diff --git a/CRM/Dataprocessor/Form/Import.php b/CRM/Dataprocessor/Form/Import.php
index 54d39d3d34b4053921e6cb5ca151c6ee409debdf..7380d28d75622a66f122def30fafa87480ac311b 100644
--- a/CRM/Dataprocessor/Form/Import.php
+++ b/CRM/Dataprocessor/Form/Import.php
@@ -19,7 +19,7 @@ class CRM_Dataprocessor_Form_Import extends CRM_Core_Form {
   }
 
   public function buildQuickForm() {
-    $this->add('textarea', 'code', E::ts('Import code'), 'rows=30 style="width:100%"', true);
+    $this->add('file', 'uploadFile', ts('Import Data File'), 'size=30 maxlength=255', TRUE);
     $this->addButtons(array(
       array('type' => 'next', 'name' => E::ts('Import'), 'isDefault' => TRUE,),
       array('type' => 'cancel', 'name' => E::ts('Cancel'))
@@ -27,14 +27,30 @@ class CRM_Dataprocessor_Form_Import extends CRM_Core_Form {
   }
 
   public function postProcess() {
-    $values = $this->exportValues();
-    $importCode = json_decode($values['code'], true);
-    $importResult = CRM_Dataprocessor_Utils_Importer::import($importCode, '', true);
+    $values = $this->getSubmitValues(True);
+    // Check for JSON extension required
+    $filetype = $values['uploadFile']['type'];
+    if($filetype != 'application/json'){
+    CRM_Core_Session::setStatus(E::ts('Imported file should be a json file'), '', 'error');
+    $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/import', array('reset' => 1, 'action' => 'add'));
+    
+    parent::preProcess();
+    CRM_Utils_System::redirect($redirectUrl);
+    
+    
+    }
+    else{
 
-    CRM_Core_Session::setStatus(E::ts('Imported data processor'), '', 'success');
+      $configuration = file_get_contents($values['uploadFile']['tmp_name']);
 
-    $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/edit', array('reset' => 1, 'action' => 'update', 'id' => $importResult['new_id']));
-    CRM_Utils_System::redirect($redirectUrl);
+      $importCode = json_decode($configuration, true);
+      $importResult = CRM_Dataprocessor_Utils_Importer::import($importCode, '', true);
+
+      CRM_Core_Session::setStatus(E::ts('Imported data processor'), '', 'success');
+
+      $redirectUrl = CRM_Utils_System::url('civicrm/dataprocessor/form/edit', array('reset' => 1, 'action' => 'update', 'id' => $importResult['new_id']));
+      CRM_Utils_System::redirect($redirectUrl);
+    }
   }
 
 
diff --git a/templates/CRM/Dataprocessor/Form/Import.tpl b/templates/CRM/Dataprocessor/Form/Import.tpl
index 19bd5d42e88ee18205fdee9ff076dda010cac337..3e83de15f3de6b025da341f51491d262ea8560fb 100644
--- a/templates/CRM/Dataprocessor/Form/Import.tpl
+++ b/templates/CRM/Dataprocessor/Form/Import.tpl
@@ -1,10 +1,7 @@
 {crmScope extensionKey='dataprocessor'}
     {* block for rule data *}
     <h3>{ts}Import data processor{/ts}</h3>
-    <div class="crm-block crm-form-block crm-data-processor_source-block">
-            <h3>{ts}Code{/ts}</h3>
-            {$form.code.html}
-    </div>
+	<div class="crm-block crm-form-block crm-data-processor_source-block">	{$form.uploadFile.html}</div>
 
     <div class="crm-submit-buttons">
         {include file="CRM/common/formButtons.tpl" location="bottom"}