private function handle_upload() { $id = null; if (isset($_FILES['Filedata']) && !empty($_FILES['Filedata']['tmp_name']) && !empty($_POST['title'])) { $FileAPI = new FileAPI(array('pdf')); try { $imported_filename = $FileAPI->import($_FILES['Filedata']['tmp_name'], $_FILES['Filedata']['name']); //Upload war erfolgreich und die Datei wurde korrekt abgelegt. //$id = YumpuEpaper_repository::create($imported_filename, $_POST['title']); $status = "success"; } catch (FileAPI_exception $e) { $status = "error"; $message = $e->getMessage(); } catch (YumpuEpaper_repository_exception $e) { /** * Wenn möglich sollten wir die importierte Datei direkt entfernen. */ $FileAPI->delete($_FILES['yc_file']['name']); $status = "error"; $message = $e->getMessage(); } } else { $status = "error"; $message = "no input file"; } $upload_response = json_encode(array('status' => $status, 'message' => $message, 'id' => $id, 'filename' => addslashes($imported_filename))); $HB = new HtmlBuilder('admin_upload_response.php', $this->plugin_path . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR); $HB->assign('upload_response', $upload_response); echo $HB->get_data(); }
/** * @return array */ public function upload() { include_once MODX_BASE_PATH . 'assets/plugins/simplefiles/lib/FileAPI.class.php'; $errorCode = 0; if (!empty($_SERVER['HTTP_ORIGIN'])) { // Enable CORS header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Range, Content-Disposition, Content-Type'); } if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { $this->isExit = true; return; } if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { $dir = $this->params['folder'] . $this->rid . "/"; $flag = $this->FS->makeDir($dir, $this->modx->config['new_folder_permissions']); if (!$flag) { $this->modx->logEvent(0, 3, "Cannot create {$dir} .", 'SimpleFiles'); die; } $uploadDir = $this->params['folder'] . 'upload/' . $this->rid . '/'; $this->FS->makeDir($uploadDir, $this->modx->config['new_folder_permissions']); $filename = end(explode('filename=', $_SERVER['HTTP_CONTENT_DISPOSITION'])); $content_range_header = $_SERVER['HTTP_CONTENT_RANGE']; $content_range = $content_range_header ? preg_split('/[^0-9]+/', $content_range_header) : null; $size = $content_range ? $content_range[3] : null; $partfile = MODX_BASE_PATH . $uploadDir . $filename . '.part'; $in = @fopen("php://input", "rb"); if (!$content_range[1] && $this->FS->fileSize($partfile) > $content_range[2]) { $out = @fopen($partfile, "wb"); } else { $out = fopen($partfile, "ab"); } while ($buff = fread($in, 4096)) { @fwrite($out, $buff); } @fclose($out); @fclose($in); if ($size && $size == $this->FS->fileSize($partfile)) { $name = $this->data->stripName(urldecode($filename)); $name = $this->FS->getInexistantFilename($dir . $name, true); $ext = end(explode('.', $name)); if (in_array($ext, explode(',', $this->params['allowedFiles']))) { if ($this->FS->moveFile($partfile, $name)) { $this->data->create(array('sf_file' => $this->FS->relativePath($name), 'sf_rid' => $this->rid, 'sf_type' => 'file', 'sf_properties' => json_encode(array('filename' => $this->FS->takeFileName($name), 'basename' => $this->FS->takeFileBasename($name), 'mime' => $this->FS->takeFileMIME($name), 'ext' => $this->FS->takeFileExt($name))), 'sf_title' => preg_replace('/\\.[^.\\s]{2,4}$/', '', urldecode($filename)), 'sf_size' => $size))->save(); } else { $errorCode = 101; } } else { $errorCode = 7; } $this->FS->rmDir($this->params['folder'] . 'upload/' . $this->rid); } // Server response: "HTTP/1.1 200 OK" $this->isExit = true; $this->output = \FileAPI::makeResponse(array('status' => \FileAPI::OK, 'statusText' => 'OK', 'body' => array('data' => array('errorCode' => $errorCode)))); return; } }
private static function init() { if (is_null(self::$_files)) { self::$_files = array(); // http://www.php.net/manual/ru/reserved.variables.files.php#106558 foreach ($_FILES as $firstNameKey => $arFileDescriptions) { foreach ($arFileDescriptions as $fileDescriptionParam => $mixedValue) { self::rRestructuringFilesArray(self::$_files, $firstNameKey, $_FILES[$firstNameKey][$fileDescriptionParam], $fileDescriptionParam); } } } }
private function display() { if (WP_Yumpu::$API_TOKEN === null) { echo ''; return; } $HB = new HtmlBuilder('admin_files.php', $this->plugin_path . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR); $yumpu_action = isset($_REQUEST['yumpu_action']) ? $_REQUEST['yumpu_action'] : null; switch ($yumpu_action) { case "create_epaper": if (isset($_FILES['yc_file']) && !empty($_FILES['yc_file']['tmp_name']) && !empty($_POST['yc_title'])) { $FileAPI = new FileAPI(array('pdf')); try { $imported_filename = $FileAPI->import($_FILES['yc_file']['tmp_name'], $_FILES['yc_file']['name']); //Upload war erfolgreich und die Datei wurde korrekt abgelegt. YumpuEpaper_repository::create($imported_filename, $_POST['yc_title'], $_POST['yc_description']); $HB->assign('yumpu_success_message', 'upload successfull'); } catch (FileAPI_exception $e) { $HB->assign('yumpu_error_message', $e->getMessage()); } catch (YumpuEpaper_repository_exception $e) { /** * Wenn möglich sollten wir die importierte Datei direkt entfernen. */ $FileAPI->delete($_FILES['yc_file']['name']); $HB->assign('yumpu_error_message', $e->getMessage()); } } else { $HB->assign('yumpu_error_message', 'no input file or title missing'); } break; } /** * Hier Liste der gesmaten Dokumenten auflisten. */ $ePapers = YumpuEpaper_repository::getAll(); $HB->assign('epapers', $ePapers); echo $HB->get_data(); }
public function upload() { $out = array(); include_once MODX_BASE_PATH . 'assets/plugins/simplegallery/lib/FileAPI.class.php'; if (!empty($_SERVER['HTTP_ORIGIN'])) { // Enable CORS header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Range, Content-Disposition, Content-Type'); } if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { $this->isExit = true; return; } if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { $files = \FileAPI::getFiles(); // Retrieve File List $dir = $this->params['folder'] . $this->rid . "/"; $flag = $this->FS->makeDir($dir, $this->modx->config['new_folder_permissions']); if ($files['sg_files']['error'] == UPLOAD_ERR_OK) { $tmp_name = $files["sg_files"]["tmp_name"]; $name = $this->data->stripName($_FILES["sg_files"]["name"]); $name = $this->FS->getInexistantFilename($dir . $name, true); $ext = $this->FS->takeFileExt($name); if (in_array($ext, array('png', 'jpg', 'gif', 'jpeg'))) { if (@move_uploaded_file($tmp_name, $name)) { $options = "w={$this->modx->config['maxImageWidth']}&h={$this->modx->config['maxImageHeight']}&q=96&ar=x&f={$ext}"; if (@$this->data->makeThumb('', $this->FS->relativePath($name), $options)) { $info = getimagesize($name); $properties = array('width' => $info[0], 'height' => $info[1], 'size' => filesize($name)); $this->data->create(array('sg_image' => $this->FS->relativePath($name), 'sg_rid' => $this->rid, 'sg_title' => preg_replace('/\\.[^.\\s]{2,4}$/', '', $_FILES["sg_files"]["name"]), 'sg_properties' => $properties))->save(true); } else { @unlink($name); $files['sg_files']['error'] = 100; } } } else { $files['sg_files']['error'] = 101; } } //fetchImages($files, $images); $json = array('data' => array('_REQUEST' => $_REQUEST, '_FILES' => $files)); // JSONP callback name $jsonp = isset($_REQUEST['callback']) ? trim($_REQUEST['callback']) : null; // Server response: "HTTP/1.1 200 OK" $this->isExit = true; $this->output = \FileAPI::makeResponse(array('status' => \FileAPI::OK, 'statusText' => 'OK', 'body' => $json), $jsonp); return $out; } }
function serviceAcceptHtml5File() { if (!empty($_SERVER['HTTP_ORIGIN'])) { // Enable CORS header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Range, Content-Disposition, Content-Type'); header('Access-Control-Allow-Credentials: true'); } if (strtoupper($_SERVER['REQUEST_METHOD']) != 'POST') { exit; } require_once BX_DIRECTORY_PATH_PLUGINS . 'file-api/server/FileAPI.class.php'; $aFiles = FileAPI::getFiles(); // Retrieve File List $aReady = array(); $aImages = array(); // JSONP callback name $sJsonp = isset($_REQUEST['callback']) ? trim($_REQUEST['callback']) : null; // upload files and return error messages or uploaded file IDs $this->performAcceptHtml5File($aFiles, $aReady); // Fetch all image-info from files list $this->fetchImagesForAcceptHtml5File($aFiles, $aImages); // JSON-data for server response $aJson = array('files' => $aReady, 'images' => $aImages, 'data' => array('_REQUEST' => $_REQUEST, '_FILES' => $aFiles)); // Server response: "HTTP/1.1 200 OK" FileAPI::makeResponse(array('status' => FileAPI::OK, 'statusText' => 'OK', 'body' => $aJson), $sJsonp); exit; }
} if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { exit; } if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { $files = FileAPI::getFiles(); // Retrieve File List $images = array(); // Fetch all image-info from files list fetchImages($files, $images); // JSONP callback name $jsonp = isset($_REQUEST['callback']) ? trim($_REQUEST['callback']) : null; // JSON-data for server response $json = array('images' => $images, 'data' => array('_REQUEST' => $_REQUEST, '_FILES' => $files)); // Server response: "HTTP/1.1 200 OK" FileAPI::makeResponse(array('status' => FileAPI::OK, 'statusText' => 'OK', 'body' => $json), $jsonp); exit; } function fetchImages($files, &$images, $name = 'file') { if (isset($files['tmp_name'])) { $filename = $files['tmp_name']; list($mime) = explode(';', @mime_content_type($filename)); if (strpos($mime, 'image') !== false) { $size = getimagesize($filename); $base64 = base64_encode(file_get_contents($filename)); $images[$name] = array('width' => $size[0], 'height' => $size[1], 'mime' => $mime, 'size' => filesize($filename), 'dataURL' => 'data:' . $mime . ';base64,' . $base64); } } else { foreach ($files as $name => $file) { fetchImages($file, $images, $name);
include './FileAPI.class.php'; if (!empty($_SERVER['HTTP_ORIGIN'])) { header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With'); } if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { exit; } if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { $files = FileAPI::getFiles(); $images = array(); fetchImages($files, $images); $jsonp = isset($_REQUEST['callback']) ? trim($_REQUEST['callback']) : null; $json = json_encode(array('images' => $images, 'data' => print_r(array('_REQUEST' => $_REQUEST, '_FILES' => FileAPI::getFiles()), true))); if (empty($jsonp)) { echo $json; } else { echo '<script type="text/javascript">' . '(function(ctx,jsonp){' . 'if(ctx&&ctx[jsonp]){' . 'ctx[jsonp](200, "OK", "' . addslashes($json) . '")' . '}' . '})(this.parent, "' . $jsonp . '")' . '</script>'; } exit; } function fetchImages($files, &$images, $name = 'file') { if (isset($files['tmp_name'])) { $filename = $files['tmp_name']; list($mime) = explode(';', @mime_content_type($filename)); if (strpos($mime, 'image') !== false) { $content = file_get_contents($filename); $images[$name] = 'data:' . $mime . ';base64,' . base64_encode($content);