示例#1
0
 static function getListValue($params)
 {
     $return = '';
     $field = new rex_yform_manager_field($params['params']["field"]);
     if ($field->getElement('modus') == "database") {
         $return = '[raw data]';
     } else {
         $upload_folder = $field->getElement('upload_folder');
         if ($upload_folder == "") {
             $upload_folder = rex_path::addonData('yform', 'uploads');
         }
         $value = explode("_", $params['value'], 2);
         if (count($value) == 2) {
             $hash = $value[0];
             $value = $value[1];
             $search_path = $upload_folder . '/' . $hash . '_' . $field->getElement('file_prefix');
             $files = glob(preg_replace('/(\\*|\\?|\\[)/', '[$1]', $search_path) . '*');
             if (count($files) == 1) {
                 $return = '<a href="' . $_SERVER["REQUEST_URI"] . '&rex_upload_downloadfile=' . urlencode($params['value']) . '">' . basename($value) . '</a>';
                 if (rex_request("rex_upload_downloadfile") == $params['value']) {
                     $file = $upload_folder . '/' . $params['value'];
                     if (file_exists($file)) {
                         ob_end_clean();
                         $filename = explode("_", basename($file), 2);
                         $filename = $filename[1];
                         header('Content-Description: File Transfer');
                         header('Content-Type: application/octet-stream');
                         header('Content-Disposition: attachment; filename=' . $filename);
                         header('Expires: 0');
                         header('Cache-Control: must-revalidate');
                         header('Pragma: public');
                         header('Content-Length: ' . filesize($file));
                         readfile($file);
                     }
                 }
             }
         }
     }
     return $return;
 }