} $postdata = file_get_contents("php://input"); //echo($postdata['size']); /* Создаем соединение */ mysql_connect($hostname, $username, $password) or die("Не могу создать соединение"); /* Выбираем базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); mysql_query('SET NAMES utf8'); /* Определяем текущую дату */ $cdate = date("Y-m-d H:i:s"); /* Составляем запрос для получения из БД номера последней добавленной записи*/ $query = "SELECT MAX(id) FROM " . $table; /* Выполняем запрос и выясняем имя загружаемой картинки. Если произойдет ошибка - вывести ее. */ $numlast = mysql_query($query) or die(mysql_error()); $numlastzap = mysql_fetch_array($numlast); $fname = getRandomFileName() . '.jpeg'; $url = "upload/" . $fname; $fp = fopen($url, 'wb'); fwrite($fp, $postdata); fclose($fp); if (exif_imagetype($url) != IMAGETYPE_JPEG) { echo 'The picture is not a jpeg'; } else { $size = getimagesize($url); if ($size[0] < $size[1]) { //портрет $size_src = $size[0]; $src_y = ($size[1] - $size_src) / 2; $src_x = 0; } else { //альбом
* Date: 5/9/15 * Time: 4:26 PM */ define('DS', DIRECTORY_SEPARATOR); //定义简写的文件分隔符 define('FILE_ROOT', __DIR__); define('FILE_ROOT_UPLOAD', FILE_ROOT . DS . 'upload'); //定于上传的根目录 require "upload.lib.php"; if ($_SERVER['REQUEST_METHOD'] == "POST" || $_SERVER['REQUEST_METHOD'] == "PUT") { if (!empty($_FILES)) { $result = array(); foreach ($_FILES as $v) { if ($v["error"] != 0) { header("Status: 415 Unsupported Media Type"); die; } } foreach ($_FILES as $index => $item) { $fileName = getRandomFileName($index); move_uploaded_file($item["tmp_name"], __DIR__ . '/' . $fileName); $result[$index] = __DIR__ . '/' . $fileName; } //header('Content-type: application/json'); echo json_encode($result); exit; } header("Status: 400 Bad Request"); } else { header("Status: 405 Method Not Allowed"); }
do { $name = md5(microtime() . rand(0, 9999)); $file = $path . $name . $extension; } while (file_exists($file)); return $name; } $responseArr = array('error_flag' => 1, 'server_mess' => "", 'img_src' => ""); if (isset($_FILES['images'])) { $types = array('image/gif', 'image/png', 'image/jpeg', 'image/pjpeg'); if (!in_array($_FILES['images']['type'], $types)) { $responseArr['server_mess'] = "Недопустимый тип файла. Допустимо загружать только изображения: *.gif, *.png, *.jpg"; print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE)); exit; } if ($_FILES["images"]["size"] > 1024 * 3 * 1024) { $responseArr['server_mess'] = "Размер файла превышает три мегабайта"; print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE)); exit; } if (is_uploaded_file($_FILES["images"]["tmp_name"])) { $path = $_FILES['images']['name']; $ext = pathinfo($path, PATHINFO_EXTENSION); $file_name = getRandomFileName('loaded_sources', $ext); move_uploaded_file($_FILES["images"]["tmp_name"], $addr = "../loaded_sources/" . $file_name . "." . $ext); $responseArr['img_src'] = $addr; $responseArr['error_flag'] = 0; } else { $responseArr['server_mess'] = "Ошибка загрузки файла"; } } print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE));
/** * send response (save uploaded file, resize if required) * @access public * */ public function sendResponse() { $iErrorNumber = CKFINDER_CONNECTOR_ERROR_NONE; $_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config"); $oRegistry =& CKFinder_Connector_Core_Factory::getInstance("Core_Registry"); $oRegistry->set("FileUpload_fileName", "unknown file"); $uploadedFile = array_shift($_FILES); if (!isset($uploadedFile['name'])) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID); } $sUnsafeFileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name'])); $sFileName = CKFinder_Connector_Utils_FileSystem::secureFileName($sUnsafeFileName); if ($sFileName != $sUnsafeFileName) { $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED; } $oRegistry->set("FileUpload_fileName", $sFileName); $this->checkConnector(); $this->checkRequest(); if (!$this->_currentFolder->checkAcl(CKFINDER_CONNECTOR_ACL_FILE_UPLOAD)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UNAUTHORIZED); } $_resourceTypeConfig = $this->_currentFolder->getResourceTypeConfig(); if (!CKFinder_Connector_Utils_FileSystem::checkFileName($sFileName) || $_resourceTypeConfig->checkIsHiddenFile($sFileName)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME); } $resourceTypeInfo = $this->_currentFolder->getResourceTypeConfig(); if (!$resourceTypeInfo->checkExtension($sFileName)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_EXTENSION); } //更改上传文件命名规范 $sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName); $sFileName = getRandomFileName() . '.' . $sExtension; $oRegistry->set("FileUpload_fileName", $sFileName); $oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl()); $maxSize = $resourceTypeInfo->getMaxSize(); if (!$_config->checkSizeAfterScaling() && $maxSize && $uploadedFile['size'] > $maxSize) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG); } $htmlExtensions = $_config->getHtmlExtensions(); $sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName); if ($htmlExtensions && !CKFinder_Connector_Utils_Misc::inArrayCaseInsensitive($sExtension, $htmlExtensions) && ($detectHtml = CKFinder_Connector_Utils_FileSystem::detectHtml($uploadedFile['tmp_name'])) === true) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE); } $secureImageUploads = $_config->getSecureImageUploads(); if ($secureImageUploads && ($isImageValid = CKFinder_Connector_Utils_FileSystem::isImageValid($uploadedFile['tmp_name'], $sExtension)) === false) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT); } switch ($uploadedFile['error']) { case UPLOAD_ERR_OK: break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG); break; case UPLOAD_ERR_PARTIAL: case UPLOAD_ERR_NO_FILE: $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT); break; case UPLOAD_ERR_NO_TMP_DIR: $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_NO_TMP_DIR); break; case UPLOAD_ERR_CANT_WRITE: $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED); break; case UPLOAD_ERR_EXTENSION: $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED); break; } $sServerDir = $this->_currentFolder->getServerPath(); while (true) { $sFilePath = CKFinder_Connector_Utils_FileSystem::combinePaths($sServerDir, $sFileName); if (file_exists($sFilePath)) { $sFileName = CKFinder_Connector_Utils_FileSystem::autoRename($sServerDir, $sFileName); $oRegistry->set("FileUpload_fileName", $sFileName); $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED; } else { if (false === move_uploaded_file($uploadedFile['tmp_name'], $sFilePath)) { $iErrorNumber = CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED; } else { if (isset($detectHtml) && $detectHtml === -1 && CKFinder_Connector_Utils_FileSystem::detectHtml($sFilePath) === true) { @unlink($sFilePath); $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE); } else { if (isset($isImageValid) && $isImageValid === -1 && CKFinder_Connector_Utils_FileSystem::isImageValid($sFilePath, $sExtension) === false) { @unlink($sFilePath); $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT); } } } if (is_file($sFilePath) && ($perms = $_config->getChmodFiles())) { $oldumask = umask(0); chmod($sFilePath, $perms); umask($oldumask); } break; } } if (!$_config->checkSizeAfterScaling()) { $this->_errorHandler->throwError($iErrorNumber, true, false); } //resize image if required require_once CKFINDER_CONNECTOR_LIB_DIR . "/CommandHandler/Thumbnail.php"; $_imagesConfig = $_config->getImagesConfig(); if ($_imagesConfig->getMaxWidth() > 0 && $_imagesConfig->getMaxHeight() > 0 && $_imagesConfig->getQuality() > 0) { CKFinder_Connector_CommandHandler_Thumbnail::createThumb($sFilePath, $sFilePath, $_imagesConfig->getMaxWidth(), $_imagesConfig->getMaxHeight(), $_imagesConfig->getQuality(), true); } if ($_config->checkSizeAfterScaling()) { //check file size after scaling, attempt to delete if too big clearstatcache(); if ($maxSize && filesize($sFilePath) > $maxSize) { @unlink($sFilePath); $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG); } else { $this->_errorHandler->throwError($iErrorNumber, true, false); } } CKFinder_Connector_Core_Hooks::run('AfterFileUpload', array(&$this->_currentFolder, &$uploadedFile, &$sFilePath)); }