Esempio n. 1
0
 static function output($request)
 {
     $x = explode('/', $request);
     $id = (int) array_shift($x);
     $name = array_pop($x);
     $param = array();
     foreach ($x as $value) {
         $y = explode('-', $value, 2);
         $param[$y[0]] = isset($y[1]) ? $y[1] : true;
     }
     $File = $RequestedFile = dbFile($id);
     if (!$File->exists()) {
         header("HTTP/1.1 404 Not Found");
         exit;
     }
     if (!$File->access()) {
         header("HTTP/1.1 401 Unauthorized");
         exit;
     }
     header("HTTP/1.1 200 OK");
     // Header
     $mime = $File->mime() ? $File->mime() : extensionToMime($File->extension());
     header('Content-Type: ' . $mime);
     header("Last-Modified: " . gmdate("D, d M Y H:i:s", $File->mtime()) . " GMT");
     header("Pragma: private");
     header("Expires: " . gmdate("D, d M Y H:i:s", time() + 60 * 60 * 24 * 364) . " GMT");
     header("Cache-Control: store, cache, max-age=100000, must-revalidate");
     if (Image::able($File->path)) {
         if (1 || isset($param['h']) || isset($param['w'])) {
             $w = isset($param['w']) ? (int) $param['w'] : 0;
             $h = isset($param['h']) ? (int) $param['h'] : 0;
             //if ($w == 0 && $h == 0) { $w = 200; }
             if (isset($_COOKIE['q1_dpr']) && $_COOKIE['q1_dpr'] > 1) {
                 if (isset($param['dpr']) ? $param['dpr'] : G()->SET['qg']['dbFile_dpr_dependent']->v) {
                     $w *= (double) $_COOKIE['q1_dpr'];
                     $h *= (double) $_COOKIE['q1_dpr'];
                 }
             }
             $w = min($w, 9000);
             $h = min($h, 9000);
             $q = (int) isset($param['q']) ? $param['q'] : 92;
             $max = isset($param['max']) ? (bool) $param['max'] : false;
             $vpos = (int) isset($param['vpos']) ? $param['vpos'] : 20;
             $hpos = (int) isset($param['hpos']) ? $param['hpos'] : 50;
             $zoom = (int) isset($param['zoom']) ? $param['zoom'] : 0;
             $type = str_replace('image/', '', $File->mime());
             //$nFile = new File(appPATH.'cache/pri/dbfile'.$id.'.'.$w.'.'.$h.'.'.$q.'.'.$max.'.'.$vpos.'.'.$hpos.'.'.$zoom);
             $nFile = new File(appPATH . 'cache/pri/dbfile_img_' . sha1($request . '|' . $w . '|' . $h));
             if (!$nFile->exists() || $File->mtime() > $nFile->mtime()) {
                 $Img = new Image($File->path);
                 if ($w == 0 && $h == 0) {
                     $w = $Img->x();
                 }
                 if ($max || $h == 0 || $w == 0) {
                     $Img = $Img->getResized($w, $h, true);
                 } else {
                     $Img = $Img->getAutoCroped($w, $h, $vpos, $hpos, $zoom);
                 }
                 qg::fire('qg::dbfile-image', array('Img' => $Img, 'id' => $id, 'param' => $param));
                 $Img->saveAs($nFile->path, $type, $q);
             }
             header('Content-Type: image/' . $type);
             $File = $nFile;
         }
         //header("Pragma: public"); // Emails!
         header("Pragma: private");
         // required
     } elseif (preg_match('/\\.pdf$/', $name) || $File->mime() == 'application/pdf') {
         header('Content-Type: application/pdf');
         header('Content-Disposition: inline; filename="' . $RequestedFile->name() . '";');
         header('Expires: 0');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Pragma: public');
     }
     if (isset($param['as']) && ($param['as'] = 'text')) {
         header("Content-Type: text/html");
     }
     if (isset($param['dl'])) {
         header('Pragma: public');
         // required!
         header('Expires: 0');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Cache-Control: private', false);
         // required for certain browsers
         header('Content-Type: application/force-download');
         header('Content-Disposition: attachment; filename="' . $RequestedFile->name() . '";');
         header('Content-Transfer-Encoding: binary');
     }
     session_write_close();
     // useful?
     $etag = 'qg' . $File->mtime();
     if (!isset($_SERVER['HTTP_IF_NONE_MATCH']) || $_SERVER['HTTP_IF_NONE_MATCH'] !== $etag) {
         header('ETag: ' . $etag);
         /* rangeDownload http://mobiforge.com/developing/story/content-delivery-mobile-devices */
         header('Content-Length: ' . $File->size());
         flush();
         while (ob_get_level()) {
             ob_end_flush();
         }
         $File->read();
     } else {
         header("HTTP/1.1 304 Not Modified");
     }
     exit;
 }
Esempio n. 2
0
		<a id=saveButton href="#" onclick="">save</a>
	<?php 
}
?>
	<div class=-scroll style="height:95%">
		<textarea id=editor style="width:100%; height:100%;"><?php 
echo hee(file_get_contents($file));
?>
</textarea>
	</div>
</div>


<?php 
$ext = preg_replace('/.*\\.([^.])/', '$1', $file);
$mime = extensionToMime($ext);
$mime = str_replace('application/x-javascript', 'text/javascript', $mime);
?>

<script>
saveFile = function(content) {
	document.body.style.background = '#fec';
	Ask({ save:content },{
		onComplete: function(asw) {
			if (asw) {
				document.body.style.background = 'rgb(200,255,200)';
			}
		}
	});
};
Esempio n. 3
0
         }
         $image = imagecreatefromjpeg($filename);
         $image = imagerotate($image, $rotations[$ori], 0);
         imagejpeg($image, $filename, 94);
     };
     $Page = Page(isset($_POST['cmspid']) ? $_POST['cmspid'] : $_GET['cmspid']);
     if ($Page->access() > 1) {
         $_FILES['cmsPageFile']['name'] = str_replace('%', '%25', $_FILES['cmsPageFile']['name']);
         $image_fix_orientation($_FILES['cmsPageFile']['tmp_name']);
         if (isset($_GET['replace']) && $_GET['replace']) {
             // replace
             $f = $_FILES['cmsPageFile'];
             $File = $Page->File($_GET['replace']);
             move_uploaded_file($f['tmp_name'], $File->path);
             $ext = strtolower(preg_replace('/.*\\./', '', $f['name']));
             $f['type'] = $f['type'] === 'application/octet-stream' ? extensionToMime($ext) : $f['type'];
             $f['type'] = preg_replace('/;.*/', '', $f['type']);
             $File->setVs(array('name' => $f['name'], 'mime' => $f['type']));
             $File->updateDb();
             $res = array('id' => (string) $File, 'url' => $File->url() . '/' . $File->vs['name']);
             Answer($res);
         } else {
             if ($NewFile = dbFiles::addFromUpload($_FILES['cmsPageFile'])) {
                 $Page->addDbFile($NewFile);
                 $res = array('id' => (string) $NewFile, 'url' => $NewFile->url() . '/' . $NewFile->vs['name']);
                 Answer($res);
             }
         }
         exit;
     }
 }
Esempio n. 4
0
                continue;
            }
            $base64 = 'data:' . extensionToMime(preg_replace('/.*\\.([^.]+$)/', '$1', $filename)) . ';base64,' . base64_encode(file_get_contents($filename));
            $html = str_replace('file://' . $filename, $base64, $html);
        }
    }
    /* inline-images */
    preg_match_all("#<img.*?src=['\"]cid:([^'\"]+)#i", $html, $matches);
    $matches = array_unique($matches[1]);
    if ($matches) {
        foreach ($matches as $hash) {
            $filename = D()->one("SELECT path FROM mail_attachment WHERE mail_id = " . $Mail . " AND hash = " . D()->quote($hash));
            if (!is_readable($filename)) {
                continue;
            }
            $base64 = 'data:' . extensionToMime(preg_replace('/.*\\.([^.]+$)/', '$1', $filename)) . ';base64,' . base64_encode(file_get_contents($filename));
            $html = str_replace('cid:' . $hash, $base64, $html);
        }
    }
    echo '<script>' . 'alert("Your Browser doas not support the sandbox-attribute! Please choose an other Browser"); ' . 'location.href = "about:blank"; ' . 'window.stop();' . 'document.execCommand("Stop");' . 'document.write(\'<scr\'+\'ipt>\');' . 'document.write(\'<!--\');' . '</script>' . $html;
    abort();
}
?>
	<div style="width:800px">
		<h1>Mail-Details</h1>
		<div class=be_contentTextBox>
			<table class=c1-style>
				<tr>
					<td styel="width:100px"> Datum
					<td> <?php 
echo date('d.m.Y H:i', D()->one("SELECT time FROM log WHERE id = " . $Mail->log_id . ""));
Esempio n. 5
0
 function send()
 {
     $this->save();
     // save
     require_once 'Zend/Mail.php';
     require_once 'Zend/Mail/Transport/Sendmail.php';
     $tr = new Zend_Mail_Transport_Sendmail('-f' . G()->SET['qg']['mail']['replay']->v);
     Zend_Mail::setDefaultTransport($tr);
     $toWebmaster = debug ? G()->SET['qg']['mail']['on debugmode to']->v : false;
     $DbFiles = array();
     // deprecated
     if (D()->mail_file) {
         foreach (D()->query("SELECT * FROM mail_file WHERE mail_id = '" . $this->id . "'") as $vs) {
             $DbFiles[] = dbFile($vs['file_id']);
         }
     }
     foreach (D()->mail_recipient->selectEntries("WHERE mail_id = " . $this . " AND sent = 0") as $Item) {
         $ZendMail = new Zend_Mail('utf-8');
         $ZendMail->setFrom($this->sender, $this->sendername ? $this->sendername : $this->sender);
         $ZendMail->setSubject(($toWebmaster ? 'Debug! ' : '') . $this->subject);
         foreach ($DbFiles as $F) {
             // deprecated
             $At = $ZendMail->createAttachment($F->getContents(), $F->mime());
             $At->filename = $F->name();
         }
         $html = $this->getHtml($Item, $ZendMail);
         // dirty hack for thunderbird, it needs multipart/related for inline-images
         if (strpos($html, 'cid:') !== false) {
             $ZendMail->setType(Zend_Mime::MULTIPART_RELATED);
             // ok?
         }
         $ZendMail->setBodyHtml(($toWebmaster ? 'original receiver :' . $Item->email . '<br><br>' : '') . $html);
         $ZendMail->setBodyText(($toWebmaster ? 'original receiver :' . $Item->email . "\n\n" : '') . $this->getText($Item, $ZendMail));
         $ZendMail->addTo($toWebmaster ? $toWebmaster : $Item->email, $Item->name);
         foreach (D()->query("SELECT * FROM mail_attachment WHERE mail_id = " . $this->id) as $vs) {
             $At = $ZendMail->createAttachment(file_get_contents($vs['path']));
             $At->filename = $vs['name'] ? $vs['name'] : basename($vs['path']);
             $At->type = $vs['type'] ? $vs['type'] : extensionToMime(preg_replace('/.*\\.([^.]+$)/', '$1', $vs['path']));
             $At->disposition = $vs['inline'] ? Zend_Mime::DISPOSITION_INLINE : Zend_Mime::DISPOSITION_ATTACHMENT;
             $At->id = $vs['hash'];
         }
         $sent = false;
         try {
             $sent = $ZendMail->send();
         } catch (Exception $e) {
             var_dump($this->sender);
             trigger_error('mail sending failed :' . $e);
         }
         if ($sent) {
             $Item->sent = time();
             $Item->save();
             // save
         }
     }
 }
Esempio n. 6
0
				<input value="<?php 
echo $F->mime();
?>
" onchange="$fn('page::fileSetMime')(<?php 
echo $Cont;
?>
,'<?php 
echo $param['name'];
?>
', this.value).run()" style="width:100%">
				<?php 
if ($F->mime() != extensionToMime($F->extension())) {
    ?>
					<a onclick="$(this).getPrevious().value=$(this).innerHTML; this.getPrevious().onchange(); this.dispose()" title="Mime anhand der Endung übernehmen"
					><?php 
    echo extensionToMime($F->extension());
    ?>
</a>
				<?php 
}
?>
		<tr class="expert">
			<th style="text-align:left">md5:
			<td><?php 
echo $F->md5();
?>
	</table>
	<br>
	<br>
	<h1><?php 
echo L('an folgenden Orten vorhanden');