/** * Display the form used to select a file to import from the server upload directory * * @param array $import_list array of import types * @param string $uploaddir upload directory * * @return nothing */ function PMA_selectUploadFile($import_list, $uploaddir) { echo '<label for="radio_local_import_file">' . sprintf(__("Select from the web server upload directory <b>%s</b>:"), htmlspecialchars(PMA_userDir($uploaddir))) . '</label>'; $extensions = ''; foreach ($import_list as $key => $val) { if (!empty($extensions)) { $extensions .= '|'; } $extensions .= $val['extension']; } $matcher = '@\\.(' . $extensions . ')(\\.(' . PMA_supportedDecompressions() . '))?$@'; $active = isset($timeout_passed) && $timeout_passed && isset($local_import_file) ? $local_import_file : ''; $files = PMA_getFileSelectOptions(PMA_userDir($uploaddir), $matcher, $active); if ($files === false) { PMA_Message::error(__('The directory you set for upload work cannot be reached'))->display(); } elseif (!empty($files)) { echo "\n"; echo ' <select style="margin: 5px" size="1" name="local_import_file" id="select_local_import_file">' . "\n"; echo ' <option value=""> </option>' . "\n"; echo $files; echo ' </select>' . "\n"; } elseif (empty($files)) { echo '<i>' . __('There are no files to upload') . '</i>'; } }
$max_field_sizes = array('tinyblob' => '256', 'blob' => '65536', 'mediumblob' => '16777216', 'longblob' => '4294967296'); // yeah, really $this_field_max_size = $max_upload_size; // from PHP max if ($this_field_max_size > $max_field_sizes[$field['pma_type']]) { $this_field_max_size = $max_field_sizes[$field['pma_type']]; } echo PMA_displayMaximumUploadSize($this_field_max_size) . "\n"; // do not generate here the MAX_FILE_SIZE, because we should // put only one in the form to accommodate the biggest field if ($this_field_max_size > $biggest_max_file_size) { $biggest_max_file_size = $this_field_max_size; } } if (!empty($cfg['UploadDir'])) { $files = PMA_getFileSelectOptions(PMA_userDir($cfg['UploadDir'])); if ($files === FALSE) { echo ' <font color="red">' . $strError . '</font><br />' . "\n"; echo ' ' . $strWebServerUploadDirectoryError . "\n"; } elseif (!empty($files)) { echo "<br />\n"; echo ' <i>' . $strOr . '</i>' . ' ' . $strWebServerUploadDirectory . ':<br />' . "\n"; echo ' <select size="1" name="fields_uploadlocal_' . $field['Field_md5'] . $vkey . '">' . "\n"; echo ' <option value="" selected="selected"></option>' . "\n"; echo $files; echo ' </select>' . "\n"; } } // end if (web-server upload directory) } elseif ('geometry' == $field['pma_type']) { // ignore this column to avoid changing it
/** * return HTML for Sql Query Form Upload * * @return string * * @usedby PMA_getHtmlForSqlQueryForm() */ function PMA_getHtmlForSqlQueryFormUpload() { global $timeout_passed, $local_import_file; $errors = array(); // we allow only SQL here $matcher = '@\\.sql(\\.(' . PMA_supportedDecompressions() . '))?$@'; if (!empty($GLOBALS['cfg']['UploadDir'])) { $files = PMA_getFileSelectOptions(PMA_Util::userDir($GLOBALS['cfg']['UploadDir']), $matcher, isset($timeout_passed) && $timeout_passed && isset($local_import_file) ? $local_import_file : ''); } else { $files = ''; } // start output $html = '<fieldset id="">'; $html .= '<legend>'; $html .= __('Browse your computer:') . '</legend>'; $html .= '<div class="formelement">'; $html .= '<input type="file" name="sql_file" class="textfield" /> '; $html .= PMA_Util::getFormattedMaximumUploadSize($GLOBALS['max_upload_size']); // some browsers should respect this :) $html .= PMA_Util::generateHiddenMaxFileSize($GLOBALS['max_upload_size']) . "\n"; $html .= '</div>'; if ($files === false) { $errors[] = PMA_Message::error(__('The directory you set for upload work cannot be reached.')); } elseif (!empty($files)) { $html .= '<div class="formelement">'; $html .= '<strong>' . __('web server upload directory:') . '</strong>'; $html .= '<select size="1" name="sql_localfile">' . "\n"; $html .= '<option value="" selected="selected"></option>' . "\n"; $html .= $files; $html .= '</select>' . "\n"; $html .= '</div>'; } $html .= '<div class="clearfloat"></div>' . "\n"; $html .= '</fieldset>'; $html .= '<fieldset id="" class="tblFooters">'; $html .= __('Character set of the file:') . "\n"; $html .= PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', null, 'utf8', false); $html .= '<input type="submit" name="SQL" value="' . __('Go') . '" />' . "\n"; $html .= '<div class="clearfloat"></div>' . "\n"; $html .= '</fieldset>'; foreach ($errors as $error) { $html .= $error->getDisplay(); } return $html; }
/** * Get HTML select option for upload * * @param string $vkey [multi_edit]['row_id'] * @param array $column description of column in given table * * @return string|void an html snippet */ function PMA_getSelectOptionForUpload($vkey, $column) { $files = PMA_getFileSelectOptions(PMA_Util::userDir($GLOBALS['cfg']['UploadDir'])); if ($files === false) { return '<font color="red">' . __('Error') . '</font><br />' . "\n" . __('The directory you set for upload work cannot be reached.') . "\n"; } elseif (!empty($files)) { return "<br />\n" . '<i>' . __('Or') . '</i>' . ' ' . __('web server upload directory:') . '<br />' . "\n" . '<select size="1" name="fields_uploadlocal' . $vkey . '[' . $column['Field_md5'] . ']">' . "\n" . '<option value="" selected="selected"></option>' . "\n" . $files . '</select>' . "\n"; } return null; }
/** * prints bookmark fieldset * * @usedby PMA_sqlQueryForm() * @uses $GLOBALS['cfg']['GZipDump'] * @uses $GLOBALS['cfg']['BZipDump'] * @uses $GLOBALS['cfg']['UploadDir'] * @uses $GLOBALS['cfg']['AvailableCharsets'] * @uses $GLOBALS['cfg']['AllowAnywhereRecoding'] * @uses $GLOBALS['strAutodetect'] * @uses $GLOBALS['strBzip'] * @uses $GLOBALS['strCharsetOfFile'] * @uses $GLOBALS['strCompression'] * @uses $GLOBALS['strError'] * @uses $GLOBALS['strGo'] * @uses $GLOBALS['strGzip'] * @uses $GLOBALS['strLocationTextfile'] * @uses $GLOBALS['strWebServerUploadDirectory'] * @uses $GLOBALS['strWebServerUploadDirectoryError'] * @uses $GLOBALS['allow_recoding'] * @uses $GLOBALS['charset'] * @uses $GLOBALS['max_upload_size'] * @uses PMA_supportedDecompressions() * @uses PMA_getFileSelectOptions() * @uses PMA_displayMaximumUploadSize() * @uses PMA_generateCharsetDropdownBox() * @uses PMA_generateHiddenMaxFileSize() * @uses PMA_MYSQL_INT_VERSION * @uses PMA_CSDROPDOWN_CHARSET * @uses empty() */ function PMA_sqlQueryFormUpload() { $errors = array(); $matcher = '@\\.sql(\\.(' . PMA_supportedDecompressions() . '))?$@'; // we allow only SQL here if (!empty($GLOBALS['cfg']['UploadDir'])) { $files = PMA_getFileSelectOptions(PMA_userDir($GLOBALS['cfg']['UploadDir']), $matcher, isset($timeout_passed) && $timeout_passed && isset($local_import_file) ? $local_import_file : ''); } else { $files = ''; } // start output echo '<fieldset id="">'; echo '<legend>'; echo $GLOBALS['strLocationTextfile'] . '</legend>'; echo '<div class="formelement">'; echo '<input type="file" name="sql_file" class="textfield" /> '; echo PMA_displayMaximumUploadSize($GLOBALS['max_upload_size']); // some browsers should respect this :) echo PMA_generateHiddenMaxFileSize($GLOBALS['max_upload_size']) . "\n"; echo '</div>'; if ($files === FALSE) { $errors[$GLOBALS['strError']] = $GLOBALS['strWebServerUploadDirectoryError']; } elseif (!empty($files)) { echo '<div class="formelement">'; echo '<strong>' . $GLOBALS['strWebServerUploadDirectory'] . ':</strong>' . "\n"; echo '<select size="1" name="sql_localfile">' . "\n"; echo '<option value="" selected="selected"></option>' . "\n"; echo $files; echo '</select>' . "\n"; echo '</div>'; } echo '<div class="clearfloat"></div>' . "\n"; echo '</fieldset>'; echo '<fieldset id="" class="tblFooters">'; if (PMA_MYSQL_INT_VERSION < 40100 && $GLOBALS['cfg']['AllowAnywhereRecoding'] && $GLOBALS['allow_recoding']) { echo $GLOBALS['strCharsetOfFile'] . "\n" . '<select name="charset_of_file" size="1">' . "\n"; foreach ($GLOBALS['cfg']['AvailableCharsets'] as $temp_charset) { echo '<option value="' . $temp_charset . '"'; if ($temp_charset == $GLOBALS['charset']) { echo ' selected="selected"'; } echo '>' . $temp_charset . '</option>' . "\n"; } echo '</select>' . "\n"; } elseif (PMA_MYSQL_INT_VERSION >= 40100) { echo $GLOBALS['strCharsetOfFile'] . "\n"; echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', null, 'utf8', FALSE); } // end if (recoding) echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo'] . '" />' . "\n"; echo '<div class="clearfloat"></div>' . "\n"; echo '</fieldset>'; foreach ($errors as $error => $message) { echo '<div>' . $error . '</div>'; echo '<div>' . $message . '</div>'; } }
/** * Prepare the form used to select a file to import from the server upload * directory * * @param ImportPlugin[] $import_list array of import plugins * @param string $uploaddir upload directory * * @return String */ public static function getSelectUploadFileBlock($import_list, $uploaddir) { $block_html = ''; $block_html .= '<label for="radio_local_import_file">' . sprintf(__("Select from the web server upload directory <b>%s</b>:"), htmlspecialchars(self::userDir($uploaddir))) . '</label>'; $extensions = ''; foreach ($import_list as $import_plugin) { if (!empty($extensions)) { $extensions .= '|'; } $extensions .= $import_plugin->getProperties()->getExtension(); } $matcher = '@\\.(' . $extensions . ')(\\.(' . PMA_supportedDecompressions() . '))?$@'; $active = isset($GLOBALS['timeout_passed']) && $GLOBALS['timeout_passed'] && isset($GLOBALS['local_import_file']) ? $GLOBALS['local_import_file'] : ''; $files = PMA_getFileSelectOptions(self::userDir($uploaddir), $matcher, $active); if ($files === false) { PMA_Message::error(__('The directory you set for upload work cannot be reached.'))->display(); } elseif (!empty($files)) { $block_html .= "\n" . ' <select style="margin: 5px" size="1" ' . 'name="local_import_file" ' . 'id="select_local_import_file">' . "\n" . ' <option value=""> </option>' . "\n" . $files . ' </select>' . "\n"; } elseif (empty($files)) { $block_html .= '<i>' . __('There are no files to upload!') . '</i>'; } return $block_html; }
echo '<div class="warning">' . "\n"; echo $strUploadsNotAllowed . "\n"; } ?> </div> <?php if (!empty($cfg['UploadDir'])) { $extensions = ''; foreach ($import_list as $key => $val) { if (!empty($extensions)) { $extensions .= '|'; } $extensions .= $val['extension']; } $matcher = '@\\.(' . $extensions . ')(\\.(' . PMA_supportedDecompressions() . '))?$@'; $files = PMA_getFileSelectOptions(PMA_userDir($cfg['UploadDir']), $matcher, isset($timeout_passed) && $timeout_passed && isset($local_import_file) ? $local_import_file : ''); echo '<div class="formelementrow">' . "\n"; if ($files === FALSE) { echo ' <div class="warning">' . "\n"; echo ' <strong>' . $strError . '</strong>: ' . "\n"; echo ' ' . $strWebServerUploadDirectoryError . "\n"; echo ' </div>' . "\n"; } elseif (!empty($files)) { echo "\n"; echo ' <i>' . $strOr . '</i><br/><label for="select_local_import_file">' . $strWebServerUploadDirectory . '</label> : ' . "\n"; echo ' <select style="margin: 5px" size="1" name="local_import_file" onchange="match_file(this.value)" id="select_local_import_file">' . "\n"; echo ' <option value=""></option>' . "\n"; echo $files; echo ' </select>' . "\n"; } echo '</div>' . "\n";