Exemplo n.º 1
0
function upload_items($dir)
{
    // upload file
    if (($GLOBALS["permissions"] & 01) != 01) {
        show_error($GLOBALS["error_msg"]["accessfunc"]);
    }
    // Execute
    if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
        $cnt = count($GLOBALS['__FILES']['userfile']['name']);
        $err = false;
        $err_avaliable = isset($GLOBALS['__FILES']['userfile']['error']);
        // upload files & check for errors
        for ($i = 0; $i < $cnt; $i++) {
            $errors[$i] = NULL;
            $tmp = $GLOBALS['__FILES']['userfile']['tmp_name'][$i];
            $items[$i] = stripslashes($GLOBALS['__FILES']['userfile']['name'][$i]);
            if ($err_avaliable) {
                $up_err = $GLOBALS['__FILES']['userfile']['error'][$i];
            } else {
                $up_err = file_exists($tmp) ? 0 : 4;
            }
            $abs = get_abs_item($dir, $items[$i]);
            if ($items[$i] == "" || $up_err == 4) {
                continue;
            }
            if ($up_err == 1 || $up_err == 2) {
                $errors[$i] = $GLOBALS["error_msg"]["miscfilesize"];
                $err = true;
                continue;
            }
            if ($up_err == 3) {
                $errors[$i] = $GLOBALS["error_msg"]["miscfilepart"];
                $err = true;
                continue;
            }
            if (!@is_uploaded_file($tmp)) {
                $errors[$i] = $GLOBALS["error_msg"]["uploadfile"];
                $err = true;
                continue;
            }
            if (@file_exists($abs) && empty($_REQUEST['overwrite_files'])) {
                $errors[$i] = $GLOBALS["error_msg"]["itemdoesexist"];
                $err = true;
                continue;
            }
            // Upload
            $ok = @$GLOBALS['jx_File']->move_uploaded_file($tmp, $abs);
            if ($ok === false || PEAR::isError($ok)) {
                $errors[$i] = $GLOBALS["error_msg"]["uploadfile"];
                if (PEAR::isError($ok)) {
                    $errors[$i] .= ' [' . $ok->getMessage() . ']';
                }
                $err = true;
                continue;
            } elseif (!jx_isFTPMode()) {
                @$GLOBALS['jx_File']->chmod($abs, 0644);
            }
        }
        if ($err) {
            // there were errors
            $err_msg = "";
            for ($i = 0; $i < $cnt; $i++) {
                if ($errors[$i] == NULL) {
                    continue;
                }
                $err_msg .= $items[$i] . " : " . $errors[$i] . "<BR>\n";
            }
            show_error($err_msg);
        }
        header("Location: " . make_link("list", $dir, NULL));
        return;
    }
    show_header($GLOBALS["messages"]["actupload"]);
    // List
    echo "<br /><form enctype=\"multipart/form-data\" action=\"" . make_link("upload", $dir, NULL) . "\" method=\"post\">\r\n\t\t\t<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . get_max_file_size() . "\" />\r\n\t\t\t<input type=\"hidden\" name=\"confirm\" value=\"true\" />\r\n\t\t<table style=\"width:60%;\" border=\"1\" class=\"adminform\">\r\n\t\t\t<tr><td class=\"quote\" colspan=\"2\">Maximum File Size = <strong>" . get_max_file_size() / 1024 / 1024 . " MB</strong><br />\r\n\t\t\t\tMaximum Upload Limit = <strong>" . get_max_upload_limit() / 1024 / 1024 . " MB</strong>\r\n\t\t\t</td></tr>\r\n\t\t\t";
    for ($i = 0; $i < 10; $i++) {
        $class = $i % 2 ? 'row0' : 'row1';
        echo "<tr class=\"{$class}\"><td colspan=\"2\">";
        echo "<input name=\"userfile[]\" type=\"file\" size=\"50\" class=\"inputbox\" /></td></tr>\n";
    }
    echo "<tr><td colspan=\"2\">\r\n\t\t\t\t<input type=\"checkbox\" checked=\"checked\" value=\"1\" name=\"overwrite_files\" id=\"overwrite_files\" /><label for=\"overwrite_files\">" . $GLOBALS["messages"]["overwrite_files"] . "</label>\r\n\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td width=\"40%\" style=\"text-align:right;\">\r\n\t\t\t\t\t<input type=\"submit\" value=\"" . $GLOBALS["messages"]["btnupload"] . "\" class=\"button\" />&nbsp;&nbsp;&nbsp;&nbsp;\r\n\t\t\t\t</td>\r\n\t\t\t\t<td width=\"60%\" style=\"text-align:left;\">&nbsp;&nbsp;&nbsp;&nbsp;\r\n\t\t\t\t\t<input type=\"button\" value=\"" . $GLOBALS["messages"]["btncancel"] . "\" class=\"button\" onclick=\"javascript:location='" . make_link("list", $dir, NULL) . "';\" />\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</form><br />\n";
    return;
}
Exemplo n.º 2
0
function uploadDocument()
{
    $uploadDocumentComponent=array();

    $uploadDocumentComponent["xtype"]= "tabpanel";
    $uploadDocumentComponent["stateId"]= "upload_tabpanel";
    $uploadDocumentComponent["activeTab"]= "uploadform";
    $uploadDocumentComponent["dialogtitle"]= G::LoadTranslation('ID_UPLOAD');
    $uploadDocumentComponent["stateful"]= true;

    $uploadDocumentComponent["stateEvents"]= array("tabchange");
    $uploadDocumentComponent["getState"]= "function_getState";
    $functionsToReplace['function_getState']="function() {
        return {
            activeTab:this.items.indexOf(this.getActiveTab())
        };
    }";
    $uploadDocumentComponent["listeners"]["resize"]["fn"]="function_listeners_resize";
    $functionsToReplace['function_listeners_resize'] = "function(panel) {
        panel.items.each(function(item) { item.setHeight(500);return true });
    }";
    $uploadDocumentComponent["items"]=array();

    $itemA=array();

    $itemA["xtype"]= "swfuploadpanel";
    $itemA["title"]= "flashupload";
    $itemA["height"]= "300";
    $itemA["id"]= "swfuploader";
    $itemA["viewConfig"]["forceFit"]=true;
    $itemA["listeners"]["allUploadsComplete"]["fn"]="function_listeners_allUploadsComplete";
    $functionsToReplace['function_listeners_allUploadsComplete'] = "function(panel) {
                                    datastore.reload();
                                    panel.destroy();
                                    Ext.getCmp('dialog').destroy();
                                    statusBarMessage('upload_completed', false, true);
                                }";

    // Uploader Params
    $itemA["upload_url"]= "../appFolder/appFolderAjax.php";
    $itemA["post_params"][session_name()]=session_id();
    $itemA["post_params"]["option"]="uploadFile";
    $itemA["post_params"]["action"]="upload";
    $itemA["post_params"]["dir"]="datastore.directory";
    $itemA["post_params"]["requestType"]="xmlhttprequest";
    $itemA["post_params"]["confirm"]="true";

    $itemA["flash_url"]="/scripts/extjs3-ext/ux.swfupload/swfupload.swf";
    $itemA["file_size_limit"]=get_max_file_size();
    // Custom Params
    $itemA["single_file_select"]=false; // Set to true if you only want to select one file from the FileDialog.
    $itemA["confirm_delete"]=false; // This will prompt for removing files from queue.
    $itemA["remove_completed"]=false; // Remove file from grid after uploaded.
    //$uploadDocumentComponent["items"][]=$itemA;

    //Standard Upload
    $itemA=array();
    $itemA["xtype"]="form";
    $itemA["autoScroll"]=true;
    $itemA["autoHeight"]=true;
    $itemA["id"]="uploadform";
    $itemA["fileUpload"]=true;
    $itemA["labelWidth"]="125";
    $itemA["url"]="URL_SCRIPT";
    $itemA["title"]=G::LoadTranslation('ID_UPLOAD');
    //$itemA["tooltip"]="Max File Size <strong>". ((get_max_file_size() / 1024) / 1024)." MB</strong><br />
    //Max Post Size<strong>". ((get_max_upload_limit() / 1024) / 1024)." MB</strong><br />";
    $itemA["frame"]=true;
    $itemA["items"]=array();
    $itemB=array();

    $itemB["xtype"]="displayfield";
    $itemB["value"]="Max File Size <strong>". ((get_max_file_size() / 1024) / 1024)." MB</strong><br />
    Max Post Size<strong>". ((get_max_upload_limit() / 1024) / 1024)." MB</strong><br />";
    //$itemA["items"][]=$itemB;

    for ($i=0; $i<7; $i++) {
        $itemB=array();

        $itemB["xtype"]="fileuploadfield";
        $itemB["fieldLabel"]="File ".($i+1);
        $itemB["id"]="uploadedFile[$i]";
        $itemB["name"]="uploadedFile[$i]";
        $itemB["width"]=275;
        $itemB["buttonOnly"]= false;
        $itemA["items"][]=$itemB;
    }

    $itemB=array();

    $itemB["xtype"]="checkbox";
    $itemB["fieldLabel"]="Overwrite";//G::LoadTranslation('ID_OVERWRITE');
    $itemB["name"]="overwrite_files";
    $itemB["checked"]=true;
    $itemA["items"][]=$itemB;

    $itemA["buttons"]=array();

    $buttonA=array();
    $buttonA["text"]=G::LoadTranslation('ID_SAVE');
    $buttonA["handler"]="function_standardupload_btnsave";
    $functionsToReplace["function_standardupload_btnsave"]=' function() {
                statusBarMessage("'.G::LoadTranslation('ID_UPLOADING_FILE').'", true, true);
                form = Ext.getCmp("uploadform").getForm();

                //Ext.getCmp("uploadform").getForm().submit();
                //console.log(form);
                //console.log(form.url);
                Ext.getCmp("uploadform").getForm().submit({
                    //reset: true,
                    reset: false,
                    waitTitle : "&nbsp;",
                    success: function(form, action) {

                        datastore.reload();
                        statusBarMessage(action.result.message, false, true);
                        Ext.getCmp("dialog").destroy();
                    },
                    failure: function(form, action) {

                        if(!action.result) return;
                        Ext.MessageBox.alert("error", action.result.error);
                        statusBarMessage(action.result.error, false, false);
                    },
                    scope: Ext.getCmp("uploadform"),
                    // add some vars to the request, similar to hidden fields
                    params: {
                        option: "standardupload",
                        action: "uploadExternalDocument",
                        dir: datastore.directory,
                        requestType: "xmlhttprequest",
                        confirm: "true",
                        docUid: "-1",
                        appId: "00000000000000000000000000000000"
                    }
                });
            }';

    $itemA["buttons"][]=$buttonA;

    $buttonA=array();

    $buttonA["text"]= G::LoadTranslation('ID_CANCEL');
    $buttonA["handler"]="function_standardupload_btncancel";
    $functionsToReplace["function_standardupload_btncancel"]=' function() { Ext.getCmp("dialog").destroy(); }';
    $itemA["buttons"][]=$buttonA;

    $uploadDocumentComponent["items"][]=$itemA;

    $itemA=array();

    $itemA["xtype"]="form";
    $itemA["id"]="transferform";
    $itemA["url"]="../appFolder/appFolderAjax.php";
    $itemA["hidden"]="true";
    $itemA["title"]="acttransfer";
    $itemA["autoHeight"]="true";
    $itemA["labelWidth"]=225;
    $itemA["frame"]= true;
    $itemA["items"]=array();


    for ($i=0; $i<7; $i++) {
        $itemB=array();
        $itemB["xtype"]= "textfield";
        $itemB["fieldLabel"]= "url_to_file";
        $itemB["name"]= "userfile[$i]";
        $itemB["width"]=275;
        $itemA["items"][]=$itemB;
    }
    $itemB=array();
    $itemB["xtype"]="checkbox";
    $itemB["fieldLabel"]="overwrite_files";
    $itemB["name"]="overwrite_files";
    $itemB["checked"]=true;
    $itemA["items"][]=$itemB;

    $itemA["buttons"]=array();

    $buttonA=array();

    $buttonA["text"]="btnsave";
    $buttonA["handler"]="function_transfer_btnsave";
    $functionsToReplace["function_transfer_btnsave"]='function() {
                statusBarMessage("transfer_processing", true, true);
                transfer = Ext.getCmp("transferform").getForm();
                transfer.submit({
                    //reset: true,
                    reset: false,
                    success: function(form, action) {
                        datastore.reload();
                        statusBarMessage(action.result.message, false, true);
                        Ext.getCmp("dialog").destroy();
                    },
                    failure: function(form, action) {
                        if(!action.result) return;
                        Ext.MessageBox.alert("error", action.result.error);
                        statusBarMessage(action.result.error, false, false);
                    },
                    scope: transfer,
                    // add some vars to the request, similar to hidden fields
                    params: {
                        "option": "com_extplorer",
                        "action": "transfer",
                        "dir": datastore.directory,
                        "confirm": "true"
                    }
                });
            }';

    $itemA["buttons"]=$buttonA;

    $buttonA=array();
    $buttonA["text"]="btncancel";
    $buttonA["handler"]="function_transfer_btncancel";
    $functionsToReplace["function_transfer_btncancel"]='function() { Ext.getCmp("dialog").destroy(); }';
    $itemA["buttons"]=$buttonA;

    //         $uploadDocumentComponent["items"][]=$itemA;

    $finalResponse=G::json_encode($uploadDocumentComponent);
    $finalResponse=str_replace("URL_SCRIPT","../appFolder/appFolderAjax.php",$finalResponse);
    foreach ($functionsToReplace as $key => $originalFunction) {
        $finalResponse=str_replace('"'.$key.'"',$originalFunction,$finalResponse);
    }
    echo ($finalResponse);

    /*
     //krumo($_POST);
     G::LoadClass ('case');
     $oCase = new Cases ();

     $G_PUBLISH = new Publisher ();
     $Fields ['DOC_UID'] = $_POST ['docID'];
     $Fields ['APP_DOC_UID'] = $_POST ['appDocId'];
     $Fields ['actionType'] = $_POST ['actionType'];
     $Fields ['docVersion'] = $_POST ['docVersion'];

     $Fields ['appId'] = $_POST ['appId'];
     $Fields ['docType'] = $_POST ['docType'];
     $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'cases/cases_AttachInputDocumentGeneral', '', $Fields,
     'appFolderSaveDocument?UID=' . $_POST ['docID'] . '&appId=' . $_POST ['appId'] . '&docType=' .
     $_POST ['docType']);
     G::RenderPage ('publish', 'raw');
     */
}
Exemplo n.º 3
0
    function execAction($dir)
    {
        if (($GLOBALS["permissions"] & 01) != 01) {
            ext_Result::sendResult('upload', false, ext_Lang::err('accessfunc'));
        }
        // Execute
        if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
            if (isset($GLOBALS['__FILES']['Filedata'])) {
                // Re-Map the flash-uploaded file with the name "Filedata" to the "userfile" array
                $GLOBALS['__FILES']['userfile'] = array('name' => array($GLOBALS['__FILES']['Filedata']['name']), 'tmp_name' => array($GLOBALS['__FILES']['Filedata']['tmp_name']), 'size' => array($GLOBALS['__FILES']['Filedata']['size']), 'type' => array($GLOBALS['__FILES']['Filedata']['type']), 'error' => array($GLOBALS['__FILES']['Filedata']['error']));
            }
            $cnt = count($GLOBALS['__FILES']['userfile']['name']);
            $err = false;
            $err_available = isset($GLOBALS['__FILES']['userfile']['error']);
            // upload files & check for errors
            for ($i = 0; $i < $cnt; $i++) {
                $errors[$i] = NULL;
                $tmp = $GLOBALS['__FILES']['userfile']['tmp_name'][$i];
                $items[$i] = stripslashes($GLOBALS['__FILES']['userfile']['name'][$i]);
                if ($err_available) {
                    $up_err = $GLOBALS['__FILES']['userfile']['error'][$i];
                } else {
                    $up_err = file_exists($tmp) ? 0 : 4;
                }
                $abs = get_abs_item($dir, $items[$i]);
                if ($items[$i] == "" || $up_err == 4) {
                    continue;
                }
                if ($up_err == 1 || $up_err == 2) {
                    $errors[$i] = ext_lang::err('miscfilesize');
                    $err = true;
                    continue;
                }
                if ($up_err == 3) {
                    $errors[$i] = ext_lang::err('miscfilepart');
                    $err = true;
                    continue;
                }
                if (!@is_uploaded_file($tmp)) {
                    $errors[$i] = ext_lang::err('uploadfile');
                    $err = true;
                    continue;
                }
                if (@file_exists($abs) && empty($_REQUEST['overwrite_files'])) {
                    $errors[$i] = ext_lang::err('itemdoesexist');
                    $err = true;
                    continue;
                }
                // Upload
                $ok = @$GLOBALS['ext_File']->move_uploaded_file($tmp, $abs);
                if ($ok === false || PEAR::isError($ok)) {
                    $errors[$i] = ext_lang::err('uploadfile');
                    if (PEAR::isError($ok)) {
                        $errors[$i] .= ' [' . $ok->getMessage() . ']';
                    }
                    $err = true;
                    continue;
                } else {
                    if (!ext_isFTPMode()) {
                        @$GLOBALS['ext_File']->chmod($abs, 0644);
                    }
                }
            }
            if ($err) {
                // there were errors
                $err_msg = "";
                for ($i = 0; $i < $cnt; $i++) {
                    if ($errors[$i] == NULL) {
                        continue;
                    }
                    $err_msg .= $items[$i] . " : " . $errors[$i] . "\n";
                }
                ext_Result::sendResult('upload', false, $err_msg);
            }
            ext_Result::sendResult('upload', true, ext_Lang::msg('upload_completed'));
            return;
        }
        ?>
{
	"xtype": "tabpanel",
	"stateId": "upload_tabpanel",
	"activeTab": "uploadform",
	"dialogtitle": "<?php 
        echo ext_Lang::msg('actupload');
        ?>
",		
	"stateful": "true",
	
	"stateEvents": ["tabchange"],
	"getState": function() { return {
					activeTab:this.items.indexOf(this.getActiveTab())
				};
	},
	"listeners": {	"resize": {
						"fn": function(panel) {	
							panel.items.each( function(item) { item.setHeight(500);return true } );								
						}
					}
					
	},
	"items": [

		{
			"xtype": "swfuploadpanel",
			"title": "<?php 
        echo Ext_Lang::msg('flashupload');
        ?>
",
			"height": "300",
			"id": "swfuploader", 
			viewConfig: {
        		forceFit: true
			},
			"listeners": {	"allUploadsComplete": {
								"fn": function(panel) {	
									datastore.reload();	
									panel.destroy();
									Ext.getCmp("dialog").destroy();
									statusBarMessage('<?php 
        echo ext_Lang::msg('upload_completed', true);
        ?>
', false );								
								}
							}
							
			},
			// Uploader Params				
			"upload_url": "<?php 
        echo _EXT_URL . '/uploadhandler.php';
        ?>
",
			"post_params": { 
				"<?php 
        echo session_name();
        ?>
": "<?php 
        echo session_id();
        ?>
",
				"<?php 
        echo get_cfg_var('session.name');
        ?>
": "<?php 
        echo session_id();
        ?>
",
				"session_name": "<?php 
        echo session_name();
        ?>
",
				"user_agent": "<?php 
        echo addslashes($_SERVER['HTTP_USER_AGENT']);
        ?>
",
				"option": "com_extplorer", 
				"action": "upload", 
				"dir": datastore.directory, 
				"requestType": "xmlhttprequest",
				"confirm": "true"
			},
			
<?php 
        if ($_SERVER['SERVER_NAME'] == 'localhost') {
            echo '"debug": "true",';
        }
        ?>
				
			"flash_url": "<?php 
        echo _EXT_URL;
        ?>
/scripts/extjs3-ext/ux.swfupload/swfupload.swf",
			"prevent_swf_caching": "false",
			"file_size_limit": "<?php 
        echo get_max_file_size();
        ?>
B",
			// Custom Params
			"single_file_select": false, // Set to true if you only want to select one file from the FileDialog.
			"confirm_delete": false, // This will prompt for removing files from queue.
			"remove_completed": false // Remove file from grid after uploaded.
		},
	{
		"xtype": "form",
		"autoScroll": "true",
		"autoHeight": "true",
		"id": "uploadform",
		"fileUpload": true,
		"labelWidth": 125,
		"url":"<?php 
        echo basename($GLOBALS['script_name']);
        ?>
",
		"title": "<?php 
        echo ext_Lang::msg('standardupload');
        ?>
",
		"tooltip": "<?php 
        echo ext_Lang::msg('max_file_size') . ' = <strong>' . get_max_file_size() / 1024 / 1024 . ' MB<\\/strong><br \\/>' . ext_Lang::msg('max_post_size') . ' = <strong>' . get_max_upload_limit() / 1024 / 1024 . ' MB<\\/strong><br \\/>';
        ?>
",
		"frame": true,
		"items": [
		{
			"xtype": "displayfield",
			"value": "<?php 
        echo ext_Lang::msg('max_file_size') . ' = <strong>' . get_max_file_size() / 1024 / 1024 . ' MB<\\/strong><br \\/>' . ext_Lang::msg('max_post_size') . ' = <strong>' . get_max_upload_limit() / 1024 / 1024 . ' MB<\\/strong><br \\/>';
        ?>
"
		},
		<?php 
        for ($i = 0; $i < 7; $i++) {
            echo '{
				"xtype": "fileuploadfield",
				"fieldLabel": "' . ext_Lang::msg('file', true) . ' ' . ($i + 1) . '",
				"id": "userfile' . $i . '",
				"name": "userfile[' . $i . ']",
				"width":275,
				"buttonOnly": false
			},';
        }
        ?>
		{	"xtype": "checkbox",
			"fieldLabel": "<?php 
        echo ext_Lang::msg('overwrite_files', true);
        ?>
",
			"name": "overwrite_files",
			"checked": true
		}],
		"buttons": [{
			"text": "<?php 
        echo ext_Lang::msg('btnsave', true);
        ?>
", 
			"handler": function() {
				statusBarMessage( '<?php 
        echo ext_Lang::msg('upload_processing', true);
        ?>
', true );
				form = Ext.getCmp("uploadform").getForm();
				form.submit({
					//reset: true,
					reset: false,
					success: function(form, action) {
						datastore.reload();
						statusBarMessage( action.result.message, false, true );
						Ext.getCmp("dialog").destroy();
					},
					failure: function(form, action) {
						if( !action.result ) return;
						Ext.MessageBox.alert('<?php 
        echo ext_Lang::err('error', true);
        ?>
', action.result.error);
						statusBarMessage( action.result.error, false, false );
					},
					"scope": form,
					// add some vars to the request, similar to hidden fields
					"params": {
						"option": "com_extplorer", 
						"action": "upload", 
						"dir": datastore.directory,
						"requestType": "xmlhttprequest",
						"confirm": "true"
					}
				});
			}
		}, {
			"text": "<?php 
        echo ext_Lang::msg('btncancel', true);
        ?>
", 
			"handler": function() { Ext.getCmp("dialog").destroy(); } 
		}]
	},
	{
	
		"xtype": "form",
		"id": "transferform",
		"url":"<?php 
        echo basename($GLOBALS['script_name']);
        ?>
",
		"hidden": "true",
		"title": "<?php 
        echo ext_Lang::msg('acttransfer');
        ?>
",
		"autoHeight": "true",
		"labelWidth": 225,
		"frame": true,
		"items": [
		<?php 
        for ($i = 0; $i < 7; $i++) {
            echo '{
					"xtype": "textfield",
					"fieldLabel": "' . ext_Lang::msg('url_to_file', true) . '",
					"name": "userfile[' . $i . ']",
					"width":275
				},';
        }
        ?>
			{	"xtype": "checkbox",
				"fieldLabel": "<?php 
        echo ext_Lang::msg('overwrite_files', true);
        ?>
",
				"name": "overwrite_files",
				"checked": true
			}
		],
		"buttons": [{
	
			"text": "<?php 
        echo ext_Lang::msg('btnsave', true);
        ?>
", 
			"handler": function() {
				statusBarMessage( '<?php 
        echo ext_Lang::msg('transfer_processing', true);
        ?>
', true );
				transfer = Ext.getCmp("transferform").getForm();
				transfer.submit({
					//reset: true,
					reset: false,
					success: function(form, action) {
						datastore.reload();
						statusBarMessage( action.result.message, false, true );
						Ext.getCmp("dialog").destroy();
					},
					failure: function(form, action) {
						if( !action.result ) return;
						Ext.MessageBox.alert('<?php 
        echo ext_Lang::err('error', true);
        ?>
', action.result.error);
						statusBarMessage( action.result.error, false, false );
					},
					scope: transfer,
					// add some vars to the request, similar to hidden fields
					params: {
						"option": "com_extplorer", 
						"action": "transfer", 
						"dir": datastore.directory,
						"confirm": 'true'
					}
				});
			}
		},{
			"text": "<?php 
        echo ext_Lang::msg('btncancel', true);
        ?>
", 
			"handler": function() { Ext.getCmp("dialog").destroy(); }
		}]
	}]
}

	<?php 
    }
Exemplo n.º 4
0
    function execAction($dir)
    {
        if (($GLOBALS["permissions"] & 01) != 01) {
            ext_Result::sendResult('upload', false, $GLOBALS["error_msg"]["accessfunc"]);
        }
        // Execute
        if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
            $cnt = count($GLOBALS['__FILES']['userfile']['name']);
            $err = false;
            $err_available = isset($GLOBALS['__FILES']['userfile']['error']);
            // upload files & check for errors
            for ($i = 0; $i < $cnt; $i++) {
                $errors[$i] = NULL;
                $tmp = $GLOBALS['__FILES']['userfile']['tmp_name'][$i];
                $items[$i] = stripslashes($GLOBALS['__FILES']['userfile']['name'][$i]);
                if ($err_available) {
                    $up_err = $GLOBALS['__FILES']['userfile']['error'][$i];
                } else {
                    $up_err = file_exists($tmp) ? 0 : 4;
                }
                $abs = get_abs_item($dir, $items[$i]);
                if ($items[$i] == "" || $up_err == 4) {
                    continue;
                }
                if ($up_err == 1 || $up_err == 2) {
                    $errors[$i] = $GLOBALS["error_msg"]["miscfilesize"];
                    $err = true;
                    continue;
                }
                if ($up_err == 3) {
                    $errors[$i] = $GLOBALS["error_msg"]["miscfilepart"];
                    $err = true;
                    continue;
                }
                if (!@is_uploaded_file($tmp)) {
                    $errors[$i] = $GLOBALS["error_msg"]["uploadfile"];
                    $err = true;
                    continue;
                }
                if (@file_exists($abs) && empty($_REQUEST['overwrite_files'])) {
                    $errors[$i] = $GLOBALS["error_msg"]["itemdoesexist"];
                    $err = true;
                    continue;
                }
                // Upload
                $ok = @$GLOBALS['ext_File']->move_uploaded_file($tmp, $abs);
                if ($ok === false || PEAR::isError($ok)) {
                    $errors[$i] = $GLOBALS["error_msg"]["uploadfile"];
                    if (PEAR::isError($ok)) {
                        $errors[$i] .= ' [' . $ok->getMessage() . ']';
                    }
                    $err = true;
                    continue;
                } else {
                    if (!ext_isFTPMode()) {
                        @$GLOBALS['ext_File']->chmod($abs, 0644);
                    }
                }
            }
            if ($err) {
                // there were errors
                $err_msg = "";
                for ($i = 0; $i < $cnt; $i++) {
                    if ($errors[$i] == NULL) {
                        continue;
                    }
                    $err_msg .= $items[$i] . " : " . $errors[$i] . "\n";
                }
                ext_Result::sendResult('upload', false, $err_msg);
            }
            ext_Result::sendResult('upload', true, ext_Lang::msg('upload_completed'));
            return;
        }
        ?>
	<div style="width:auto;">
	    <div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
	    <div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
	
	        <h3 style="margin-bottom:5px;"><?php 
        echo ext_Lang::msg('actupload');
        ?>
</h3>
	        <?php 
        echo '<br />
	         ' . ext_Lang::msg('max_file_size') . ' = <strong>' . get_max_file_size() / 1024 / 1024 . ' MB</strong><br />
			 ' . ext_Lang::msg('max_post_size') . ' = <strong>' . get_max_upload_limit() / 1024 / 1024 . ' MB</strong><br />';
        ?>
        <div id="adminForm">
	        <div id="uploadForm"></div>
	        <div id="transferForm"><h4><?php 
        echo ext_Lang::msg('acttransfer');
        ?>
</h4></div>
        </div>
	    </div></div></div>
	    <div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
	</div>
	<script type="text/javascript">
	var simple = new Ext.form.Form({
	    labelWidth: 125, // label settings here cascade unless overridden
	    url:'<?php 
        echo basename($GLOBALS['script_name']);
        ?>
',
	    fileUpload: true
	});
	simple.add(
		<?php 
        for ($i = 0; $i < 7; $i++) {
            echo "new Ext.form.TextField({\n\t\t        fieldLabel: '" . ext_Lang::msg('file', true) . ' ' . ($i + 1) . "',\n\t\t        name: 'userfile[{$i}]',\n\t\t        width:275,\n\t\t        inputType: 'file'\n\t\t    }),";
        }
        ?>
		new Ext.form.Checkbox({
			fieldLabel: '<?php 
        echo ext_Lang::msg('overwrite_files', true);
        ?>
',
			name: 'overwrite_files',
			checked: true
		})
	    );
	
	simple.addButton('<?php 
        echo ext_Lang::msg('btnsave', true);
        ?>
', function() {
		statusBarMessage( '<?php 
        echo ext_Lang::msg('upload_processing', true);
        ?>
', true );
	    simple.submit({
	        //reset: true,
	        reset: false,
	        success: function(form, action) {
	        	datastore.reload();
	        	statusBarMessage( action.result.message, false, true );
	        	dialog.destroy();
	        },
	        failure: function(form, action) {
	        	if( !action.result ) return;
	        	Ext.MessageBox.alert('<?php 
        echo ext_Lang::err('error', true);
        ?>
', action.result.error);
	        	statusBarMessage( action.result.error, false, false );
	        },
	        scope: simple,
	        // add some vars to the request, similar to hidden fields
	        params: {option: 'com_extplorer', 
	        		action: 'upload', 
	        		dir: datastore.directory,
	        		requestType: 'xmlhttprequest',
	        		confirm: 'true'}
	    });
	});
	simple.addButton('<?php 
        echo ext_Lang::msg('btncancel', true);
        ?>
', function() { dialog.destroy(); } );
	simple.render('uploadForm');
	
	var transfer = new Ext.form.Form({
	    labelWidth: 125, // label settings here cascade unless overridden
	    url:'<?php 
        echo basename($GLOBALS['script_name']);
        ?>
'
	});
	transfer.add(
	<?php 
        for ($i = 0; $i < 7; $i++) {
            echo "new Ext.form.TextField({\n\t\t        fieldLabel: '" . ext_Lang::msg('url_to_file', true) . "',\n\t\t        name: 'userfile[{$i}]',\n\t\t        width:275\n\t\t    }),";
        }
        ?>
		new Ext.form.Checkbox({
			fieldLabel: '<?php 
        echo ext_Lang::msg('overwrite_files', true);
        ?>
',
			name: 'overwrite_files',
			checked: true
		})
	    );
	
	transfer.addButton('<?php 
        echo ext_Lang::msg('btnsave', true);
        ?>
', function() {
		statusBarMessage( '<?php 
        echo ext_Lang::msg('transfer_processing', true);
        ?>
', true );
	    transfer.submit({
	        //reset: true,
	        reset: false,
	        success: function(form, action) {
	        	datastore.reload();
	        	statusBarMessage( action.result.message, false, true );
	        	dialog.destroy();
	        },
	        failure: function(form, action) {
	        	if( !action.result ) return;
	        	Ext.MessageBox.alert('<?php 
        echo ext_Lang::err('error', true);
        ?>
', action.result.error);
	        	statusBarMessage( action.result.error, false, false );
	        },
	        scope: transfer,
	        // add some vars to the request, similar to hidden fields
	        params: {option: 'com_extplorer', 
	        		action: 'transfer', 
	        		dir: datastore.directory,
	        		confirm: 'true'
	        }
	    });
	});
	transfer.addButton('<?php 
        echo ext_Lang::msg('btncancel', true);
        ?>
', function() { dialog.destroy(); } );
	
	transfer.render('transferForm');
	
	var tabs = new Ext.TabPanel("adminForm");
	tabs.addTab("uploadForm", '<?php 
        echo ext_Lang::msg('actupload', true);
        ?>
');
	tabs.addTab("transferForm", '<?php 
        echo ext_Lang::msg('acttransfer', true);
        ?>
');
	tabs.activate('uploadForm');
	</script>
	<?php 
    }