Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/djproject/urls.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/djproject/urls.py	(revision 39229)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/djproject/urls.py	(working copy)
@@ -87,6 +87,7 @@
     url(r'^poll_notification$', poll_notification),
     url(r'^CacheClean$', CacheClean),
     url(r'^RSCacheClean$', RSCacheClean),
+    url(r'^check_before_upload$', check_before_upload),
     url(r'^upload$', upload),
     url(r'^save_file$', save_file),
     url(r'^get_runtime_script$', get_runtime_script),
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py	(revision 39229)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/router.py	(working copy)
@@ -572,11 +572,37 @@
         m1 = re.match("The HTTP Host and Referer check is (\w+)", each)
         if m1:
             check_host_referer = False if m1.group(1)=="off" else True
-            
+
     djproject.an_settings.CHECK_HOST_REFERER = check_host_referer
     return HttpResponse(json.dumps({}))
-    
+
+config_lock = False
+
+def check_before_upload(request):
+    """
+    This API is for check old uploaded files be removed and set to config mode
+    """
+    if request.method != 'POST':
+        return HttpResponse(status=405)
+    global config_lock
+    config_lock = True
+    remove_files_by_dir(FILE_UPLOAD_DIR, False, False, '.array')
+    force_config_mode()
+    return HttpResponse(json.dumps({}))
+
+def force_config_mode():
+    """
+    Keep in config mode for uploading
+    prevent user enter config mode in SSH
+    """
+    global config_lock
+    sess = get_current_session()
+    while config_lock:
+        sess.cli.set_config()
+
 def upload(request):
+    global config_lock
+    config_lock = False
     file = upload_receive( request )
     file_name = handle_uploaded_file(file)
 
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py	(revision 39229)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/hive/utils.py	(working copy)
@@ -23,7 +23,8 @@
 import commands
 import cgi
 import djproject.an_settings
-    
+import shutil
+
 def get_current_request():
     return getattr(_thread_locals, 'request', None)
 
@@ -1387,3 +1388,27 @@
         return ','.join(matched_illegal_character_list)
     else:
         return
+
+def remove_files_by_dir(path_of_dir, is_unlink, is_recursive, file_extension):
+    """
+    It will remove or unlink files in the directory
+    :param string path_of_dir path of the directory
+    :param boolean is_unlink if True will also unlink files in the directory
+    :param boolean is_recur if True will also remove the directories
+    :param string file_extension only remove files by extension
+    """
+    result = ""
+    for filename in os.listdir(path_of_dir):
+        file_path = os.path.join(path_of_dir, filename)
+        try:
+            if file_extension and os.path.splitext(filename)[1] != file_extension:
+                continue
+            if os.path.islink(file_path) and is_unlink:
+                os.unlink(file_path)
+            elif os.path.isfile(file_path):
+                os.unlink(file_path)
+            elif os.path.isdir(file_path) and is_recursive:
+                shutil.rmtree(file_path)
+        except Exception as e:
+            result = 'Failed to delete %s. Reason: %s' % (file_path, e)
+    return result
Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/media/js/coffee/widget-form.coffee
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/media/js/coffee/widget-form.coffee	(revision 39229)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/media/js/coffee/widget-form.coffee	(working copy)
@@ -1177,6 +1177,8 @@
                         else
                             _this._clear_error()
                             data.submit()
+                        if window.location.pathname is '/apv/system/management/update/_edit'
+                            $.post '/check_before_upload'
                     return
                 progress: (e,data) ->
                     progress = parseInt(data.loaded / data.total * 100, 10)
