本文整理汇总了PHP中get_file_perms函数的典型用法代码示例。如果您正苦于以下问题:PHP get_file_perms函数的具体用法?PHP get_file_perms怎么用?PHP get_file_perms使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_file_perms函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execAction
function execAction($dir, $item)
{
// change permissions
if (($GLOBALS["permissions"] & 01) != 01) {
ext_Result::sendResult('chmod', false, $GLOBALS["error_msg"]["accessfunc"]);
}
if (!empty($GLOBALS['__POST']["selitems"])) {
$cnt = count($GLOBALS['__POST']["selitems"]);
} else {
$GLOBALS['__POST']["selitems"][] = $item;
$cnt = 1;
}
if (!empty($GLOBALS['__POST']['do_recurse'])) {
$do_recurse = true;
} else {
$do_recurse = false;
}
// Execute
if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
$bin = '';
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$tmp = "r_" . $i . $j;
if (!empty($GLOBALS['__POST'][$tmp])) {
$bin .= '1';
} else {
$bin .= '0';
}
}
}
if ($bin == '0') {
// Changing permissions to "none" is not allowed
ext_Result::sendResult('chmod', false, $item . ": " . ext_Lang::err('chmod_none_not_allowed'));
}
$old_bin = $bin;
for ($i = 0; $i < $cnt; ++$i) {
if (ext_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
$item = $GLOBALS['__POST']["selitems"][$i];
if (ext_isFTPMode()) {
$abs_item = get_item_info($dir, $item);
} else {
$abs_item = get_abs_item($dir, $item);
}
if (!$GLOBALS['ext_File']->file_exists($abs_item)) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["fileexist"]);
}
if (!get_show_item($dir, $item)) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["accessfile"]);
}
if ($do_recurse) {
$ok = $GLOBALS['ext_File']->chmodRecursive($abs_item, $mode);
} else {
if (get_is_dir($abs_item)) {
// when we chmod a directory we must care for the permissions
// to prevent that the directory becomes not readable (when the "execute bits" are removed)
$bin = substr_replace($bin, '1', 2, 1);
// set 1st x bit to 1
$bin = substr_replace($bin, '1', 5, 1);
// set 2nd x bit to 1
$bin = substr_replace($bin, '1', 8, 1);
// set 3rd x bit to 1
if (ext_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
}
//ext_Result::sendResult('chmod', false, $GLOBALS['FTPCONNECTION']->pwd());
$ok = @$GLOBALS['ext_File']->chmod($abs_item, $mode);
}
$bin = $old_bin;
}
if ($ok === false || PEAR::isError($ok)) {
$msg = $item . ": " . $GLOBALS["error_msg"]["permchange"];
$msg .= PEAR::isError($ok) ? ' [' . $ok->getMessage() . ']' : '';
ext_Result::sendResult('chmod', false, $msg);
}
ext_Result::sendResult('chmod', true, ext_Lang::msg('permchange'));
return;
}
if (ext_isFTPMode()) {
$abs_item = get_item_info($dir, $GLOBALS['__POST']["selitems"][0]);
} else {
$abs_item = get_abs_item($dir, $GLOBALS['__POST']["selitems"][0]);
$abs_item = utf8_decode($abs_item);
}
$mode = parse_file_perms(get_file_perms($abs_item));
if ($mode === false) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["permread"]);
}
$pos = "rwx";
$text = "";
for ($i = 0; $i < $cnt; ++$i) {
$s_item = get_rel_item($dir, $GLOBALS['__POST']["selitems"][$i]);
if (strlen($s_item) > 50) {
$s_item = "..." . substr($s_item, -47);
//.........这里部分代码省略.........
示例2: send_dircontents
/**
* This function assembles an array (list) of files or directories in the directory specified by $dir
* The result array is send using JSON
*
* @param string $dir
* @param string $sendWhat Can be "files" or "dirs"
*/
function send_dircontents($dir, $sendWhat = 'files')
{
// print table of files
global $dir_up, $mainframe;
// make file & dir tables, & get total filesize & number of items
get_dircontents($dir, $dir_list, $file_list, $tot_file_size, $num_items);
if ($sendWhat == 'files') {
$list = $file_list;
} elseif ($sendWhat == 'dirs') {
$list = $dir_list;
} else {
$list = make_list($dir_list, $file_list);
}
$i = 0;
$items['totalCount'] = count($list);
$items['items'] = array();
$dirlist = array();
if ($sendWhat != 'dirs') {
// Replaced array_splice, because it resets numeric indexes (like files or dirs with a numeric name)
// Here we reduce the list to the range of $limit beginning at $start
$a = 0;
$output_array = array();
foreach ($list as $key => $value) {
if ($a >= $GLOBALS['start'] && $a - $GLOBALS['start'] < $GLOBALS['limit']) {
$output_array[$key] = $value;
}
$a++;
}
$list = $output_array;
}
while (list($item, $info) = each($list)) {
// link to dir / file
if (is_array($info)) {
$abs_item = $info;
if (extension_loaded('posix')) {
$user_info = posix_getpwnam($info['user']);
$file_info['uid'] = $user_info['uid'];
$file_info['gid'] = $user_info['gid'];
}
} else {
$abs_item = get_abs_item(ext_TextEncoding::fromUTF8($dir), $item);
$file_info = @stat($abs_item);
}
$is_dir = get_is_dir($abs_item);
if ($GLOBALS['use_mb']) {
if (ext_isFTPMode()) {
$items['items'][$i]['name'] = $item;
} else {
if (mb_detect_encoding($item) == 'ASCII') {
$items['items'][$i]['name'] = ext_TextEncoding::toUTF8($item);
} else {
$items['items'][$i]['name'] = ext_TextEncoding::toUTF8($item);
}
}
} else {
$items['items'][$i]['name'] = ext_isFTPMode() ? $item : ext_TextEncoding::toUTF8($item);
}
$items['items'][$i]['is_file'] = get_is_file($abs_item);
$items['items'][$i]['is_archive'] = ext_isArchive($item) && !ext_isFTPMode();
$items['items'][$i]['is_writable'] = $is_writable = @$GLOBALS['ext_File']->is_writable($abs_item);
$items['items'][$i]['is_chmodable'] = $is_chmodable = @$GLOBALS['ext_File']->is_chmodable($abs_item);
$items['items'][$i]['is_readable'] = $is_readable = @$GLOBALS['ext_File']->is_readable($abs_item);
$items['items'][$i]['is_deletable'] = $is_deletable = @$GLOBALS['ext_File']->is_deletable($abs_item);
$items['items'][$i]['is_editable'] = get_is_editable($abs_item);
$items['items'][$i]['icon'] = _EXT_URL . "/images/" . get_mime_type($abs_item, "img");
$items['items'][$i]['size'] = parse_file_size(get_file_size($abs_item));
// type
$items['items'][$i]['type'] = get_mime_type($abs_item, "type");
// modified
$items['items'][$i]['modified'] = parse_file_date(get_file_date($abs_item));
// permissions
$perms = get_file_perms($abs_item);
if ($perms) {
if (strlen($perms) > 3) {
$perms = substr($perms, 2);
}
$items['items'][$i]['perms'] = $perms . ' (' . parse_file_perms($perms) . ')';
} else {
$items['items'][$i]['perms'] = ' (unknown) ';
}
$items['items'][$i]['perms'] = $perms . ' (' . parse_file_perms($perms) . ')';
if (extension_loaded("posix")) {
if ($file_info["uid"]) {
$user_info = posix_getpwuid($file_info["uid"]);
//$group_info = posix_getgrgid($file_info["gid"]);
$items['items'][$i]['owner'] = $user_info["name"] . " (" . $file_info["uid"] . ")";
} else {
$items['items'][$i]['owner'] = " (unknown) ";
}
} else {
$items['items'][$i]['owner'] = 'n/a';
}
if ($is_dir && $sendWhat != 'files') {
//.........这里部分代码省略.........
示例3: print_table
function print_table($dir, $list, $allow)
{
// print table of files
global $dir_up;
if (!is_array($list)) {
return;
}
if ($dir != "" || strstr($dir, _QUIXPLORER_PATH)) {
echo "<tr class=\"row1\">\n\t \t\t\t<td> </td>\n\t \t\t\t<td valign=\"baseline\">\n\t \t\t\t\t<a href=\"" . make_link("list", $dir_up, NULL) . "\">\n\t \t\t\t\t<img border=\"0\" width=\"22\" height=\"22\" align=\"absmiddle\" src=\"" . _QUIXPLORER_URL . "/images/_up.png\" alt=\"" . $GLOBALS["messages"]["uplink"] . "\" title=\"" . $GLOBALS["messages"]["uplink"] . "\"/> ..</a>\n\t \t\t\t</td>\n\t \t\t\t<td> </td>\n\t \t\t\t<td> </td>\n\t \t\t\t<td> </td>\n\t \t\t\t<td> </td>\n\t \t\t\t<td> </td>";
if (extension_loaded("posix")) {
echo "<td> </td>";
}
echo "</tr>";
}
$i = 0;
$toggle = false;
while (list($item, $info) = each($list)) {
// link to dir / file
if (is_array($info)) {
$abs_item = $info;
if (extension_loaded('posix')) {
$user_info = posix_getpwnam($info['user']);
$file_info['uid'] = $user_info['uid'];
$file_info['gid'] = $user_info['gid'];
}
} else {
$abs_item = get_abs_item($dir, $item);
$file_info = @stat($abs_item);
}
$is_writable = @$GLOBALS['jx_File']->is_writable($abs_item);
$is_chmodable = @$GLOBALS['jx_File']->is_chmodable($abs_item);
$is_readable = @$GLOBALS['jx_File']->is_readable($abs_item);
$is_deletable = @$GLOBALS['jx_File']->is_deletable($abs_item);
$target = "";
$extra = "";
if (@$GLOBALS['jx_File']->is_link($abs_item)) {
$extra = " -> " . @readlink($abs_item);
}
if (@get_is_dir($abs_item, '')) {
$link = make_link("list", get_rel_item($dir, $item), NULL);
} else {
if (get_is_editable($abs_item) && $is_writable) {
$link = make_link('edit', $dir, $item);
} elseif ($is_readable) {
if (strstr(get_abs_dir($dir), $GLOBALS['mosConfig_absolute_path']) && !$GLOBALS['jx_File']->is_link($abs_item)) {
$link = $GLOBALS["home_url"] . "/" . get_rel_item($dir, $item);
$target = '_blank';
} else {
$link = make_link('download', $dir, $item);
}
}
}
if (jx_isIE()) {
echo '<tr onmouseover="style.backgroundColor=\'#D8ECFF\';" onmouseout="style.backgroundColor=\'#EAECEE\';" bgcolor=\'#EAECEE\'>';
} else {
$toggle = $toggle ? '1' : '0';
echo "<tr class=\"row{$toggle}\">";
$toggle = !$toggle;
}
echo "<td><input type=\"checkbox\" id=\"item_{$i}\" name=\"selitems[]\" value=\"";
echo urlencode($item) . "\" onclick=\"javascript:Toggle(this);\" /></td>\n";
// Icon + Link
echo "<td nowrap=\"nowrap\" align=\"left\">";
if ($is_readable) {
echo "<a href=\"" . $link . "\" target=\"" . $target . "\">";
}
//else echo "<<>";
echo "<img border=\"0\" width=\"22\" height=\"22\" ";
echo "align=\"absmiddle\" src=\"" . _QUIXPLORER_URL . "/images/" . get_mime_type($abs_item, "img") . "\" alt=\"\" /> ";
$s_item = $item;
if (strlen($s_item) > 50) {
$s_item = substr($s_item, 0, 47) . "...";
}
echo htmlspecialchars($s_item . $extra);
if ($is_readable) {
echo "</a>";
// ...$extra...
}
echo "</td>\n";
// Size
echo "<td>" . parse_file_size(get_file_size($abs_item)) . "</td>\n";
// type
echo "<td>" . get_mime_type($abs_item, "type") . "</td>\n";
// modified
echo "<td>" . parse_file_date(get_file_date($abs_item)) . "</td>\n";
// permissions
echo "<td>";
if ($allow && $is_chmodable) {
echo "<a href=\"" . make_link("chmod", $dir, $item) . "\" title=\"";
echo $GLOBALS["messages"]["permlink"] . "\">";
}
$perms = get_file_perms($abs_item);
if (strlen($perms) > 3) {
$perms = substr($perms, 2);
}
echo '<strong>' . $perms . '</strong><br />' . parse_file_type($dir, $item) . parse_file_perms($perms);
if ($allow && $is_chmodable) {
echo "</a>";
}
echo "</td>\n";
//.........这里部分代码省略.........
示例4: print_table
function print_table($dir, $list)
{
if (!is_array($list)) {
return;
}
while (list($item, ) = each($list)) {
// link to dir / file
$abs_item = get_abs_item($dir, $item);
$target = "";
//$extra="";
//if(is_link($abs_item)) $extra=" -> ".@readlink($abs_item);
if (is_dir($abs_item)) {
$link = make_link("list", get_rel_item($dir, $item), NULL);
} else {
//if(get_is_editable($dir,$item) || get_is_image($dir,$item)) {
//?? CK Hier wird kuenftig immer mit dem download-Link gearbeitet, damit
//?? CK die Leute links klicken koennen
//?? CK $link = $GLOBALS["home_url"]."/".get_rel_item($dir, $item);
$link = make_link("download", $dir, $item);
$target = "_blank";
}
//else $link = "";
echo "<TR class=\"rowdata\"><TD><INPUT TYPE=\"checkbox\" name=\"selitems[]\" value=\"";
echo htmlspecialchars($item) . "\" onclick=\"javascript:Toggle(this);\"></TD>\n";
// Icon + Link
echo "<TD nowrap>";
if (permissions_grant($dir, $item, "read")) {
echo "<A HREF=\"" . $link . "\">";
}
//else echo "<A>";
echo "<IMG border=\"0\" width=\"16\" height=\"16\" ";
echo "align=\"ABSMIDDLE\" src=\"_img/" . get_mime_type($dir, $item, "img") . "\" ALT=\"\"> ";
$s_item = $item;
if (strlen($s_item) > 50) {
$s_item = substr($s_item, 0, 47) . "...";
}
echo htmlspecialchars($s_item);
if (permissions_grant($dir, $item, "read")) {
echo "</A>";
}
echo "</TD>\n";
// ...$extra...
// Size
echo "<TD>" . parse_file_size(get_file_size($dir, $item)) . "</TD>\n";
// Type
echo "<TD>" . get_mime_type($dir, $item, "type") . "</TD>\n";
// Modified
echo "<TD>" . parse_file_date(get_file_date($dir, $item)) . "</TD>\n";
// Permissions
echo "<TD>";
if (permissions_grant($dir, NULL, "change")) {
echo "<A HREF=\"" . make_link("chmod", $dir, $item) . "\" TITLE=\"";
echo $GLOBALS["messages"]["permlink"] . "\">";
}
echo parse_file_type($dir, $item) . parse_file_perms(get_file_perms($dir, $item));
if (permissions_grant($dir, NULL, "change")) {
echo "</A>";
}
echo "</TD>\n";
// Actions
echo "<TD>\n<TABLE>\n";
// EDIT
if (get_is_editable($dir, $item)) {
_print_link("edit", permissions_grant($dir, $item, "change"), $dir, $item);
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_.gif\" ALT=\"\"></TD>\n";
}
// DOWNLOAD
if (get_is_file($dir, $item)) {
_print_link("download", permissions_grant($dir, $item, "read"), $dir, $item);
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_.gif\" ALT=\"\"></TD>\n";
}
echo "</TABLE>\n</TD></TR>\n";
}
}
示例5: chmod_item
function chmod_item($dir, $item)
{
// change permissions
if (($GLOBALS["permissions"] & 01) != 01) {
show_error($GLOBALS["error_msg"]["accessfunc"]);
}
if (!empty($GLOBALS['__POST']["selitems"])) {
$cnt = count($GLOBALS['__POST']["selitems"]);
} else {
$GLOBALS['__POST']["selitems"][] = $item;
$cnt = 1;
}
if (!empty($GLOBALS['__POST']['do_recurse'])) {
$do_recurse = true;
} else {
$do_recurse = false;
}
// Execute
if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
$bin = '';
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$tmp = "r_" . $i . $j;
if (isset($GLOBALS['__POST'][$tmp]) && $GLOBALS['__POST'][$tmp] == "1") {
$bin .= '1';
} else {
$bin .= '0';
}
}
}
if ($bin == '0') {
// Changing permissions to "none" is not allowed
show_error($item . ": " . $GLOBALS["error_msg"]["permchange"]);
}
$old_bin = $bin;
for ($i = 0; $i < $cnt; ++$i) {
if (jx_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
$item = $GLOBALS['__POST']["selitems"][$i];
if (jx_isFTPMode()) {
$abs_item = get_item_info($dir, $item);
} else {
$abs_item = get_abs_item($dir, $item);
}
if (!$GLOBALS['jx_File']->file_exists($abs_item)) {
show_error($item . ": " . $GLOBALS["error_msg"]["fileexist"]);
}
if (!get_show_item($dir, $item)) {
show_error($item . ": " . $GLOBALS["error_msg"]["accessfile"]);
}
if ($do_recurse) {
$ok = $GLOBALS['jx_File']->chmodRecursive($abs_item, $mode);
} else {
if (get_is_dir($abs_item)) {
// when we chmod a directory we must care for the permissions
// to prevent that the directory becomes not readable (when the "execute bits" are removed)
$bin = substr_replace($bin, '1', 2, 1);
// set 1st x bit to 1
$bin = substr_replace($bin, '1', 5, 1);
// set 2nd x bit to 1
$bin = substr_replace($bin, '1', 8, 1);
// set 3rd x bit to 1
if (jx_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
}
$ok = @$GLOBALS['jx_File']->chmod($abs_item, $mode);
}
$bin = $old_bin;
}
if (!$ok || PEAR::isError($ok)) {
show_error($abs_item . ": " . $GLOBALS["error_msg"]["permchange"]);
}
header("Location: " . make_link("link", $dir, NULL));
return;
}
if (jx_isFTPMode()) {
$abs_item = get_item_info($dir, $GLOBALS['__POST']["selitems"][0]);
} else {
$abs_item = get_abs_item($dir, $GLOBALS['__POST']["selitems"][0]);
}
$mode = parse_file_perms(get_file_perms($abs_item));
if ($mode === false) {
show_error($GLOBALS['__POST']["selitems"][0] . ": " . $GLOBALS["error_msg"]["permread"]);
}
$pos = "rwx";
$text = "";
for ($i = 0; $i < $cnt; ++$i) {
$s_item = get_rel_item($dir, $GLOBALS['__POST']["selitems"][$i]);
if (strlen($s_item) > 50) {
$s_item = "..." . substr($s_item, -47);
}
$text .= ", " . $s_item;
}
show_header($GLOBALS["messages"]["actperms"]);
//.........这里部分代码省略.........
示例6: execAction
function execAction($dir, $item)
{
// change permissions
if (($GLOBALS["permissions"] & 01) != 01) {
ext_Result::sendResult('chmod', false, $GLOBALS["error_msg"]["accessfunc"]);
}
if (!empty($GLOBALS['__POST']["selitems"])) {
$cnt = count($GLOBALS['__POST']["selitems"]);
} else {
$GLOBALS['__POST']["selitems"][] = $item;
$cnt = 1;
}
if (!empty($GLOBALS['__POST']['do_recurse'])) {
$do_recurse = true;
} else {
$do_recurse = false;
}
// Execute
if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
$bin = '';
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$tmp = "r_" . $i . $j;
if (!empty($GLOBALS['__POST'][$tmp])) {
$bin .= '1';
} else {
$bin .= '0';
}
}
}
if ($bin == '0') {
// Changing permissions to "none" is not allowed
ext_Result::sendResult('chmod', false, $item . ": " . ext_Lang::err('chmod_none_not_allowed'));
}
$old_bin = $bin;
for ($i = 0; $i < $cnt; ++$i) {
if (ext_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
$item = $GLOBALS['__POST']["selitems"][$i];
if (ext_isFTPMode()) {
$abs_item = get_item_info($dir, $item);
} else {
$abs_item = get_abs_item($dir, $item);
}
if (!$GLOBALS['ext_File']->file_exists($abs_item)) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["fileexist"]);
}
if (!get_show_item($dir, $item)) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["accessfile"]);
}
if ($do_recurse) {
$ok = $GLOBALS['ext_File']->chmodRecursive($abs_item, $mode);
} else {
if (get_is_dir($abs_item)) {
// when we chmod a directory we must care for the permissions
// to prevent that the directory becomes not readable (when the "execute bits" are removed)
$bin = substr_replace($bin, '1', 2, 1);
// set 1st x bit to 1
$bin = substr_replace($bin, '1', 5, 1);
// set 2nd x bit to 1
$bin = substr_replace($bin, '1', 8, 1);
// set 3rd x bit to 1
if (ext_isFTPMode()) {
$mode = decoct(bindec($bin));
} else {
$mode = bindec($bin);
}
}
//ext_Result::sendResult('chmod', false, $GLOBALS['FTPCONNECTION']->pwd());
$ok = @$GLOBALS['ext_File']->chmod($abs_item, $mode);
}
$bin = $old_bin;
}
if ($ok === false || PEAR::isError($ok)) {
$msg = $item . ": " . $GLOBALS["error_msg"]["permchange"];
$msg .= PEAR::isError($ok) ? ' [' . $ok->getMessage() . ']' : '';
ext_Result::sendResult('chmod', false, $msg);
}
ext_Result::sendResult('chmod', true, ext_Lang::msg('permchange'));
return;
}
if (ext_isFTPMode()) {
$abs_item = get_item_info($dir, $GLOBALS['__POST']["selitems"][0]);
} else {
$abs_item = get_abs_item($dir, $GLOBALS['__POST']["selitems"][0]);
$abs_item = utf8_decode($abs_item);
}
$mode = parse_file_perms(get_file_perms($abs_item));
if ($mode === false) {
ext_Result::sendResult('chmod', false, $item . ": " . $GLOBALS["error_msg"]["permread"]);
}
$pos = "rwx";
$text = "";
for ($i = 0; $i < $cnt; ++$i) {
$s_item = get_rel_item($dir, $GLOBALS['__POST']["selitems"][$i]);
if (strlen($s_item) > 50) {
$s_item = "..." . substr($s_item, -47);
//.........这里部分代码省略.........
示例7: print_table
function print_table($dir, $list, $allow)
{
// print table of files
if (!is_array($list)) {
return;
}
while (list($item, ) = each($list)) {
// link to dir / file
$abs_item = get_abs_item($dir, $item);
$target = "";
//$extra="";
//if(is_link($abs_item)) $extra=" -> ".@readlink($abs_item);
if (is_dir($abs_item)) {
$link = make_link("list", get_rel_item($dir, $item), NULL);
} else {
//if(get_is_editable($dir,$item) || get_is_image($dir,$item)) {
$link = $GLOBALS["home_url"] . "/" . get_rel_item($dir, $item);
$target = "_blank";
}
//else $link = "";
echo "<TR class=\"rowdata\"><TD><INPUT TYPE=\"checkbox\" name=\"selitems[]\" value=\"";
echo htmlspecialchars($item) . "\" onclick=\"javascript:Toggle(this);\"></TD>\n";
// Icon + Link
echo "<TD nowrap>";
if (get_is_dir($dir, $item)) {
/*if($link!="") */
echo "<A HREF=\"" . $link . "\" TARGET=\"" . $target . "\">";
//else echo "<A>";
}
echo "<IMG border=\"0\" width=\"16\" height=\"16\" ";
echo "align=\"ABSMIDDLE\" src=\"_img/" . get_mime_type($dir, $item, "img") . "\" ALT=\"\"> ";
$s_item = $item;
if (strlen($s_item) > 50) {
$s_item = substr($s_item, 0, 47) . "...";
}
echo htmlspecialchars($s_item);
if (get_is_dir($dir, $item)) {
echo "</A>";
}
echo "</TD>\n";
// ...$extra...
// Size
echo "<TD>" . parse_file_size(get_file_size($dir, $item)) . "</TD>\n";
// Type
echo "<TD>" . get_mime_type($dir, $item, "type") . "</TD>\n";
// Modified
echo "<TD>" . parse_file_date(get_file_date($dir, $item)) . "</TD>\n";
// Permissions
echo "<TD>";
if ($allow) {
echo "<A HREF=\"" . make_link("chmod", $dir, $item) . "\" TITLE=\"";
echo $GLOBALS["messages"]["permlink"] . "\">";
}
echo parse_file_type($dir, $item) . parse_file_perms(get_file_perms($dir, $item));
if ($allow) {
echo "</A>";
}
echo "</TD>\n";
// Actions
echo "<TD>\n<TABLE>\n";
// EDIT
if (get_is_editable($dir, $item)) {
if ($allow) {
echo "<TD><A HREF=\"" . make_link("edit", $dir, $item) . "\">";
echo "<IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_edit.gif\" ALT=\"" . $GLOBALS["messages"]["editlink"] . "\" TITLE=\"";
echo $GLOBALS["messages"]["editlink"] . "\"></A></TD>\n";
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_edit_.gif\" ALT=\"" . $GLOBALS["messages"]["editlink"] . "\" TITLE=\"";
echo $GLOBALS["messages"]["editlink"] . "\"></TD>\n";
}
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_.gif\" ALT=\"\"></TD>\n";
}
// DOWNLOAD
if (get_is_file($dir, $item)) {
if ($GLOBALS["display_file_download_icon"]) {
if ($allow) {
echo "<TD><A HREF=\"" . make_link("download", $dir, $item) . "\">";
echo "<IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_download.gif\" ALT=\"" . $GLOBALS["messages"]["downlink"];
echo "\" TITLE=\"" . $GLOBALS["messages"]["downlink"] . "\"></A></TD>\n";
} else {
if (!$allow) {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_download_.gif\" ALT=\"" . $GLOBALS["messages"]["downlink"];
echo "\" TITLE=\"" . $GLOBALS["messages"]["downlink"] . "\"></TD>\n";
}
}
}
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"_img/_.gif\" ALT=\"\"></TD>\n";
}
echo "</TABLE>\n</TD></TR>\n";
}
}
示例8: chmod_item
function chmod_item($dir, $item)
{
if (!permissions_grant($dir, NULL, "change")) {
show_error($GLOBALS["error_msg"]["accessfunc"]);
}
if (!file_exists(get_abs_item($dir, $item))) {
show_error($item . ": " . $GLOBALS["error_msg"]["fileexist"]);
}
if (!get_show_item($dir, $item)) {
show_error($item . ": " . $GLOBALS["error_msg"]["accessfile"]);
}
// Execute
if (isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"] == "true") {
$bin = '';
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$tmp = "r_" . $i . $j;
if (isset($GLOBALS['__POST'][$tmp]) && $GLOBALS['__POST'][$tmp] == "1") {
$bin .= '1';
} else {
$bin .= '0';
}
}
}
if (!@chmod(get_abs_item($dir, $item), bindec($bin))) {
show_error($item . ": " . $GLOBALS["error_msg"]["permchange"]);
}
header("Location: " . make_link("link", $dir, NULL));
return;
}
$mode = parse_file_perms(get_file_perms($dir, $item));
if ($mode === false) {
show_error($item . ": " . $GLOBALS["error_msg"]["permread"]);
}
$pos = "rwx";
$s_item = get_rel_item($dir, $item);
if (strlen($s_item) > 50) {
$s_item = "..." . substr($s_item, -47);
}
show_header($GLOBALS["messages"]["actperms"] . ": /" . $s_item);
// Form
echo "<BR><TABLE width=\"175\"><FORM method=\"post\" action=\"";
echo make_link("chmod", $dir, $item) . "\">\n";
echo "<INPUT type=\"hidden\" name=\"confirm\" value=\"true\">\n";
// print table with current perms & checkboxes to change
for ($i = 0; $i < 3; ++$i) {
echo "<TR><TD>" . $GLOBALS["messages"]["miscchmod"][$i] . "</TD>";
for ($j = 0; $j < 3; ++$j) {
echo "<TD>" . $pos[$j] . " <INPUT type=\"checkbox\"";
if ($mode[3 * $i + $j] != "-") {
echo " checked";
}
echo " name=\"r_" . $i . $j . "\" value=\"1\"></TD>";
}
echo "</TR>\n";
}
// Submit / Cancel
echo "</TABLE>\n<BR><TABLE>\n<TR><TD>\n<INPUT type=\"submit\" value=\"" . $GLOBALS["messages"]["btnchange"];
echo "\"></TD>\n<TD><input type=\"button\" value=\"" . $GLOBALS["messages"]["btncancel"];
echo "\" onClick=\"javascript:location='" . make_link("list", $dir, NULL) . "';\">\n</TD></TR></FORM></TABLE><BR>\n";
}
示例9: print_table
/**
print table of files
*/
function print_table($dir, $list)
{
if (!is_array($list)) {
return;
}
while (list($item) = each($list)) {
// link to dir / file
$abs_item = get_abs_item($dir, $item);
$target = "";
if (is_dir($abs_item)) {
$link = make_link("list", get_rel_item($dir, $item), NULL);
} else {
$link = make_link("download", $dir, $item);
$target = "_blank";
}
echo "<TR class=\"rowdata\"><TD><INPUT TYPE=\"checkbox\" name=\"selitems[]\" value=\"";
echo htmlspecialchars($item) . "\" onclick=\"javascript:Toggle(this);\"></TD>\n";
// Icon + Link
echo "<TD nowrap>";
if (permissions_grant($dir, $item, "read")) {
echo "<A HREF=\"" . $link . "\">";
}
//else echo "<A>";
echo "<IMG border=\"0\" width=\"16\" height=\"16\" ";
echo "align=\"ABSMIDDLE\" src=\"_img/" . get_mime_type($dir, $item, "img") . "\" ALT=\"\"> ";
$s_item = $item;
if (strlen($s_item) > 50) {
$s_item = substr($s_item, 0, 47) . "...";
}
echo htmlspecialchars($s_item);
if (permissions_grant($dir, $item, "read")) {
echo "</A>";
}
echo "</TD>\n";
// ...$extra...
// Size
echo '<TD>' . parse_file_size(get_file_size($dir, $item)) . sprintf("%10s", " ") . "</TD>\n";
// Type
echo "<td>" . _get_link_info($dir, $item, "type") . "</td>\n";
// Modified
echo "<TD>" . parse_file_date(get_file_date($dir, $item)) . "</TD>\n";
// Permissions
echo "<TD>";
if (permissions_grant($dir, NULL, "change")) {
echo "<A HREF=\"" . make_link("chmod", $dir, $item) . "\" TITLE=\"";
echo $GLOBALS["messages"]["permlink"] . "\">";
}
echo parse_file_type($dir, $item) . parse_file_perms(get_file_perms($dir, $item));
if (permissions_grant($dir, NULL, "change")) {
echo "</A>";
}
echo "</TD>\n";
// Actions
echo "<TD>\n<TABLE>\n";
// EDIT
if (get_is_editable($dir, $item)) {
_print_link("edit", permissions_grant($dir, $item, "change"), $dir, $item);
} else {
// UNZIP
if (get_is_unzipable($dir, $item)) {
_print_link("unzip", permissions_grant($dir, $item, "create"), $dir, $item);
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"" . $GLOBALS["baricons"]["none"] . "\" ALT=\"\"></TD>\n";
}
}
// DOWNLOAD
if (get_is_file($dir, $item)) {
_print_link("download", permissions_grant($dir, $item, "read"), $dir, $item);
} else {
echo "<TD><IMG border=\"0\" width=\"16\" height=\"16\" align=\"ABSMIDDLE\" ";
echo "src=\"" . $GLOBALS["baricons"]["none"] . "\" ALT=\"\"></TD>\n";
}
echo "</TABLE>\n</TD></TR>\n";
}
}
示例10: read_dirs
function read_dirs($dir_path)
{
echo '
<table>
<tr class="banner">
<td width="400" >Filename</td>
<td width="400" >Last modified</td>
<td width="400" >Size</td>
<td width="400" >Chmod/Perms</td>
<td width="400" >Action</td>
</tr>';
if (is_dir($dir_path)) {
if (($dp = opendir($dir_path)) == false) {
echo "open {$dir_path} failed.\n";
return -1;
}
while (($file_name = readdir($dp)) != false) {
if ($file_name == "." || $file_name == "..") {
continue;
}
$sub_path = $dir_path . "/" . $file_name;
$last_modify_time = date("Y/m/d H:i:s", fileatime($file_name));
$file_size = filesize($file_name);
$file_size_string = get_human_size($file_size);
$file_perms = get_file_perms($file_name);
$file_perms_string = get_human_file_perms($file_name);
$file_owner = get_file_owner($file_name);
echo '<tr class="directory">
<td width="400" ><a href=' . $file_name . '>' . $file_name . '</a></td>
<td width="400" >' . $last_modify_time . '</td>
<td width="400" >' . $file_size_string . '</td>
<td width="400" >' . $file_perms . ' / ' . $file_perms_string . ' / ' . $file_owner . '</td>
<td width="400" ><a href="webshell.php?delete=' . $file_name . '"' . '>Delete </a>
<a href="webshell.php?edit=' . $file_name . '"' . '>Edit </a>
<a href="webshell.php?download=' . $file_name . '"' . '>Download </a>
<a href="webshell.php?rename=' . $file_name . '"' . '>Rename </a>
</td>
</tr>';
}
}
echo '</table>';
closedir($dp);
return 0;
}