2015-11-15 18:37:34 -03:00
|
|
|
<?php defined('BLUDIT') or die('Bludit CMS.');
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
|
|
|
|
// Type
|
2015-11-16 23:45:03 -03:00
|
|
|
$type = 'other';
|
2017-10-06 18:28:06 +02:00
|
|
|
if (!empty($_POST['type'])) {
|
2015-11-16 23:45:03 -03:00
|
|
|
$type = Sanitize::html($_POST['type']);
|
|
|
|
}
|
2015-11-03 21:28:11 -03:00
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Filename and extension
|
2015-11-03 21:28:11 -03:00
|
|
|
$filename = Text::lowercase($_FILES['files']['name'][0]);
|
|
|
|
$fileExtension = pathinfo($filename, PATHINFO_EXTENSION);
|
|
|
|
$filename = pathinfo($filename, PATHINFO_FILENAME);
|
|
|
|
$filename = Text::replace(' ', '', $filename);
|
|
|
|
$filename = Text::replace('_', '', $filename);
|
|
|
|
|
2016-09-25 23:30:06 -03:00
|
|
|
// Check extension
|
2017-10-06 18:28:06 +02:00
|
|
|
$validExtension = array('tiff', 'gif', 'png', 'jpg', 'jpeg', 'bmp', 'svg');
|
|
|
|
if (!in_array($fileExtension, $validExtension)) {
|
|
|
|
$validExtensionString = implode(',', $validExtension);
|
|
|
|
exit (json_encode(array(
|
2016-09-25 23:30:06 -03:00
|
|
|
'status'=>1,
|
2017-10-06 18:28:06 +02:00
|
|
|
'message'=>'Invalid extension file. Supported extensions:'.$validExtensionString
|
2016-09-25 23:30:06 -03:00
|
|
|
)));
|
|
|
|
}
|
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Generate the next filename if the filename already exist
|
2015-12-28 19:28:42 -03:00
|
|
|
$tmpName = $filename.'.'.$fileExtension;
|
2017-10-06 18:28:06 +02:00
|
|
|
if (Sanitize::pathFile(PATH_UPLOADS.$tmpName)) {
|
2015-11-03 21:28:11 -03:00
|
|
|
$number = 0;
|
|
|
|
$tmpName = $filename.'_'.$number.'.'.$fileExtension;
|
2017-10-06 18:28:06 +02:00
|
|
|
while (Sanitize::pathFile(PATH_UPLOADS.$tmpName)) {
|
2015-11-03 21:28:11 -03:00
|
|
|
$number++;
|
|
|
|
$tmpName = $filename.'_'.$number.'.'.$fileExtension;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Move from temporary PHP folder to temporary Bludit folder
|
|
|
|
$originalFile = PATH_TMP.'original'.'.'.$fileExtension;
|
|
|
|
move_uploaded_file($_FILES['files']['tmp_name'][0], $originalFile);
|
|
|
|
|
|
|
|
// Returned variables
|
|
|
|
$absoluteURL = '';
|
|
|
|
$absoluteURLThumbnail = '';
|
|
|
|
$absolutePath = '';
|
2015-11-03 21:28:11 -03:00
|
|
|
|
2015-11-15 20:04:54 -03:00
|
|
|
// --- PROFILE PICTURE ---
|
2017-10-06 18:28:06 +02:00
|
|
|
if ($type=='profilePicture') {
|
|
|
|
// Resize and crop profile image
|
2015-11-20 01:00:52 -03:00
|
|
|
$username = Sanitize::html($_POST['username']);
|
2016-01-02 19:51:12 -03:00
|
|
|
$tmpName = $username.'.png';
|
2015-11-15 20:04:54 -03:00
|
|
|
$Image = new Image();
|
2017-10-06 18:28:06 +02:00
|
|
|
$Image->setImage($originalFile, PROFILE_IMG_WIDTH, PROFILE_IMG_HEIGHT, 'crop');
|
2016-06-02 21:57:13 -03:00
|
|
|
$Image->saveImage(PATH_UPLOADS_PROFILES.$tmpName, PROFILE_IMG_QUALITY, false, true);
|
2017-10-06 18:28:06 +02:00
|
|
|
|
|
|
|
// Paths
|
|
|
|
$absoluteURL = DOMAIN_UPLOADS_PROFILES.$tmpName;
|
|
|
|
$absoluteURLThumbnail = '';
|
|
|
|
$absolutePath = PATH_UPLOADS_PROFILES.$tmpName;
|
2015-11-15 18:37:34 -03:00
|
|
|
}
|
2015-11-15 20:04:54 -03:00
|
|
|
// --- OTHERS ---
|
2015-11-15 18:37:34 -03:00
|
|
|
else {
|
2017-10-06 18:28:06 +02:00
|
|
|
// Exclude generate thumbnail for SVG format
|
|
|
|
if (strcasecmp($fileExtension, 'svg')!=0) {
|
|
|
|
// Generate the thumbnail
|
|
|
|
$Image = new Image();
|
|
|
|
$Image->setImage($originalFile, THUMBNAILS_WIDTH, THUMBNAILS_HEIGHT, 'crop');
|
2016-08-22 15:12:46 -03:00
|
|
|
$Image->saveImage(PATH_UPLOADS_THUMBNAILS.$tmpName, THUMBNAILS_QUALITY, true);
|
|
|
|
}
|
2015-12-28 19:28:42 -03:00
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Move the original to the upload folder
|
|
|
|
rename($originalFile, PATH_UPLOADS.$tmpName);
|
2016-09-25 23:30:06 -03:00
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Generate a link to the SVG file and save on thumbnails folder
|
|
|
|
if (strcasecmp($fileExtension, 'svg')==0) {
|
2016-08-22 15:12:46 -03:00
|
|
|
symlink(PATH_UPLOADS.$tmpName, PATH_UPLOADS_THUMBNAILS.$tmpName);
|
|
|
|
}
|
2017-10-06 18:28:06 +02:00
|
|
|
|
|
|
|
// Paths
|
|
|
|
$absoluteURL = DOMAIN_UPLOADS.$tmpName;
|
|
|
|
$absoluteURLThumbnail = DOMAIN_UPLOADS_THUMBNAILS.$tmpName;
|
|
|
|
$absolutePath = PATH_UPLOADS.$tmpName;
|
2015-12-28 19:28:42 -03:00
|
|
|
}
|
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
// Remove the Bludit temporary file
|
|
|
|
if (Sanitize::pathFile($originalFile)) {
|
|
|
|
unlink($originalFile);
|
2015-11-15 18:37:34 -03:00
|
|
|
}
|
2015-11-03 21:28:11 -03:00
|
|
|
|
2017-10-06 18:28:06 +02:00
|
|
|
exit (json_encode(array(
|
2015-11-03 21:28:11 -03:00
|
|
|
'status'=>0,
|
2017-10-06 18:28:06 +02:00
|
|
|
'message'=>'Image uploaded success.',
|
|
|
|
'filename'=>$tmpName,
|
|
|
|
'absoluteURL'=>$absoluteURL,
|
|
|
|
'absoluteURLThumbnail'=>$absoluteURLThumbnail,
|
|
|
|
'absolutePath'=>$absolutePath
|
2015-11-03 21:28:11 -03:00
|
|
|
)));
|
|
|
|
|
2016-09-25 23:30:06 -03:00
|
|
|
?>
|