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 #854911 [interface] Grey out non applicable actions in structure
|
||||
+ [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)
|
||||
+ 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) {
|
||||
$blobtext = PMA_BS_CreateReferenceLink($row[$i], $db);
|
||||
} 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>';
|
||||
@@ -1376,7 +1376,7 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
|
||||
} else {
|
||||
// we show the BINARY message and field's size
|
||||
// (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
|
||||
* @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;
|
||||
if (is_null($content)) {
|
||||
$result .= ' - NULL';
|
||||
@@ -2272,6 +2272,10 @@ function PMA_handle_non_printable_contents($category, $content, $transform_funct
|
||||
// in this case, restart from the original $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);
|
||||
|
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