cmc-sales/php/app/controllers/email_attachments_controller.php
2025-11-23 16:09:25 +11:00

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);
}
}
}