rfe #1025696 [browse] Add direct download of binary fields.
This commit is contained in:
@@ -28,6 +28,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA
|
|||||||
+ rfe #2835109 [interface] Move ^1 to the end of message.
|
+ rfe #2835109 [interface] Move ^1 to the end of message.
|
||||||
+ rfe #854911 [interface] Grey out non applicable actions in structure
|
+ rfe #854911 [interface] Grey out non applicable actions in structure
|
||||||
+ [interface] Allow to create new table from navigation frame (in light mode).
|
+ [interface] Allow to create new table from navigation frame (in light mode).
|
||||||
|
+ rfe #1025696 [browse] Add direct download of binary fields.
|
||||||
|
|
||||||
3.3.0.0 (not yet released)
|
3.3.0.0 (not yet released)
|
||||||
+ rfe #2308632 [edit] Use hex for (var)binary fields,
|
+ rfe #2308632 [edit] Use hex for (var)binary fields,
|
||||||
|
@@ -1320,7 +1320,7 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
|
|||||||
if ($bs_reference_exists) {
|
if ($bs_reference_exists) {
|
||||||
$blobtext = PMA_BS_CreateReferenceLink($row[$i], $db);
|
$blobtext = PMA_BS_CreateReferenceLink($row[$i], $db);
|
||||||
} else {
|
} else {
|
||||||
$blobtext = PMA_handle_non_printable_contents('BLOB', (isset($row[$i]) ? $row[$i] : ''), $transform_function, $transform_options, $default_function, $meta);
|
$blobtext = PMA_handle_non_printable_contents('BLOB', (isset($row[$i]) ? $row[$i] : ''), $transform_function, $transform_options, $default_function, $meta, $_url_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
$vertical_display['data'][$row_no][$i] = ' <td align="left"' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">' . $blobtext . '</td>';
|
$vertical_display['data'][$row_no][$i] = ' <td align="left"' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">' . $blobtext . '</td>';
|
||||||
@@ -1376,7 +1376,7 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
|
|||||||
} else {
|
} else {
|
||||||
// we show the BINARY message and field's size
|
// we show the BINARY message and field's size
|
||||||
// (or maybe use a transformation)
|
// (or maybe use a transformation)
|
||||||
$row[$i] = PMA_handle_non_printable_contents('BINARY', $row[$i], $transform_function, $transform_options, $default_function, $meta);
|
$row[$i] = PMA_handle_non_printable_contents('BINARY', $row[$i], $transform_function, $transform_options, $default_function, $meta, $_url_params);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2248,7 +2248,7 @@ function PMA_displayResultsOperations($the_disp_mode, $analyzed_sql) {
|
|||||||
* @param object $meta the meta-information about this field
|
* @param object $meta the meta-information about this field
|
||||||
* @return mixed string or float
|
* @return mixed string or float
|
||||||
*/
|
*/
|
||||||
function PMA_handle_non_printable_contents($category, $content, $transform_function, $transform_options, $default_function, $meta) {
|
function PMA_handle_non_printable_contents($category, $content, $transform_function, $transform_options, $default_function, $meta, $url_params = array()) {
|
||||||
$result = '[' . $category;
|
$result = '[' . $category;
|
||||||
if (is_null($content)) {
|
if (is_null($content)) {
|
||||||
$result .= ' - NULL';
|
$result .= ' - NULL';
|
||||||
@@ -2272,6 +2272,10 @@ function PMA_handle_non_printable_contents($category, $content, $transform_funct
|
|||||||
// in this case, restart from the original $content
|
// in this case, restart from the original $content
|
||||||
$result = htmlspecialchars(PMA_replace_binary_contents($content));
|
$result = htmlspecialchars(PMA_replace_binary_contents($content));
|
||||||
}
|
}
|
||||||
|
/* Create link to download */
|
||||||
|
if (count($url_params) > 0) {
|
||||||
|
$result = '<a href="tbl_get_field.php' . PMA_generate_common_url($url_params) . '">' . $result . '</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return($result);
|
return($result);
|
||||||
|
45
tbl_get_field.php
Normal file
45
tbl_get_field.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||||
|
/**
|
||||||
|
* Displays table structure infos like fields/columns, indexes, size, rows
|
||||||
|
* and allows manipulation of indexes and columns/fields
|
||||||
|
* @version $Id$
|
||||||
|
* @package phpMyAdmin
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once './libraries/common.inc.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets tables informations
|
||||||
|
*/
|
||||||
|
require_once './libraries/tbl_info.inc.php';
|
||||||
|
|
||||||
|
PMA_checkParameters(array('db', 'table', 'where_clause', 'transform_key'));
|
||||||
|
|
||||||
|
if (!PMA_DBI_get_columns($db, $table)) {
|
||||||
|
PMA_mysqlDie($strInvalidTableName);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = PMA_DBI_fetch_value('SELECT ' . PMA_backquote($transform_key) . ' FROM ' . PMA_backquote($table) . ' WHERE ' . $where_clause . ';');
|
||||||
|
|
||||||
|
/* Avoid corrupting data */
|
||||||
|
@ini_set('url_rewriter.tags','');
|
||||||
|
|
||||||
|
header('Content-Type: application/octet-stream');
|
||||||
|
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||||
|
header('Content-Disposition: attachment; filename="' . $table . '-' . $transform_key . '.bin"');
|
||||||
|
if (PMA_USR_BROWSER_AGENT == 'IE') {
|
||||||
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||||
|
header('Pragma: public');
|
||||||
|
} else {
|
||||||
|
header('Pragma: no-cache');
|
||||||
|
// test case: exporting a database into a .gz file with Safari
|
||||||
|
// would produce files not having the current time
|
||||||
|
// (added this header for Safari but should not harm other browsers)
|
||||||
|
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||||
|
}
|
||||||
|
echo $result;
|
||||||
|
?>
|
Reference in New Issue
Block a user