76 lines
1.8 KiB
PHP
Executable file
76 lines
1.8 KiB
PHP
Executable file
<?php
|
|
class EmailAttachmentsController extends AppController {
|
|
|
|
var $name = 'EmailAttachments';
|
|
var $helpers = array('Html', 'Form');
|
|
|
|
|
|
|
|
|
|
function download($id) {
|
|
// maybe make this GET a go webservice that's something like
|
|
// GET vault.cmctechnologies.com.au/filename
|
|
// HTTP basic auth, or some sort of preshared key
|
|
// service hits S3 if required. Cached on disk for $sometime
|
|
|
|
$file = $this->EmailAttachment->findById($id);
|
|
|
|
$file_path = Configure::read('attachments_directory');
|
|
if(file_exists($file_path."/".$file['EmailAttachment']['name'])) {
|
|
|
|
|
|
|
|
Configure::write('debug', 0);
|
|
|
|
if(!$file['EmailAttachment']['filename']) {
|
|
$filename = 'vault_'.time();
|
|
}
|
|
else {
|
|
$filename = $file['EmailAttachment']['filename'];
|
|
}
|
|
|
|
header('Content-type: ' . $file['EmailAttachment']['type']);
|
|
header('Content-length: ' . $file['EmailAttachment']['size']);
|
|
header('Content-Disposition: attachment; filename='.$filename);
|
|
|
|
readfile($file_path."/".$file['EmailAttachment']['name']);
|
|
|
|
exit();
|
|
}
|
|
else {
|
|
echo "ERROR!! : File Not Found";
|
|
echo $file['EmailAttachment']['filename'];
|
|
die();
|
|
}
|
|
}
|
|
|
|
function view($id = null) {
|
|
Configure::write('debug', 0);
|
|
$this->layout = 'minimal';
|
|
if(!$id) {
|
|
return;
|
|
}
|
|
else {
|
|
|
|
$file = $this->EmailAttachment->find('first', array('conditions'=>array('EmailAttachment.id'=>$id)));
|
|
//$this->set('attachment', $file);
|
|
|
|
$file_path = Configure::read('attachments_directory');
|
|
|
|
$contents = file_get_contents($file_path."/".$file['EmailAttachment']['name']);
|
|
|
|
|
|
if($file['EmailAttachment']['type'] == 'text/plain') {
|
|
$contents = nl2br($contents, true);
|
|
}
|
|
|
|
|
|
$this->set('contents', $contents);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|