Image Not Upload On Local Folder In NiceEdit New Update

Tuesday, November 3, 2015

friends after searching a lot over stackoverflow and google, I finally decide to ask this question as per my requirement for niceEdit editor as their new updated causes a little bit problem. I already download and call the nicEdit.js file as,



http://../nicEdit.js


and i also create nicUpload.php. Here is the PHP code, ( I just change the folder name )



<?php

define('NICUPLOAD_PATH', './uploads'); // Set the path (relative or absolute) to
// the directory to save image files

define('NICUPLOAD_URI', '/uploads'); // Set the URL (relative or absolute) to
// the directory defined above

$nicupload_allowed_extensions = array('jpg','jpeg','png','gif','bmp');

// You should not need to modify below this line

$rfc1867 = function_exists('apc_fetch') && ini_get('apc.rfc1867');

if(!function_exists('json_encode')) {
die('{"error" : "Image upload host does not have the required dependicies (json_encode/decode)"}');
}

$id = $_POST['APC_UPLOAD_PROGRESS'];
if(empty($id)) {
$id = $_GET['id'];
}

if($_SERVER['REQUEST_METHOD']=='POST') { // Upload is complete
if(empty($id) || !is_numeric($id)) {
nicupload_error('Invalid Upload ID');
}
if(!is_dir(NICUPLOAD_PATH) || !is_writable(NICUPLOAD_PATH)) {
nicupload_error('Upload directory '.NICUPLOAD_PATH.' must exist and have write permissions on the server');
}

$file = $_FILES['nicImage'];
$image = $file['tmp_name'];

$max_upload_size = ini_max_upload_size();
if(!$file) {
nicupload_error('Must be less than '.bytes_to_readable($max_upload_size));
}

$ext = strtolower(substr(strrchr($file['name'], '.'), 1));
@$size = getimagesize($image);
if(!$size || !in_array($ext, $nicupload_allowed_extensions)) {
nicupload_error('Invalid image file, must be a valid image less than '.bytes_to_readable($max_upload_size));
}

$filename = $id.'.'.$ext;
$path = NICUPLOAD_PATH.'/'.$filename;

if(!move_uploaded_file($image, $path)) {
nicupload_error('Server error, failed to move file');
}

if($rfc1867) {
$status = apc_fetch('upload_'.$id);
}
if(!$status) {
$status = array();
}
$status['done'] = 1;
$status['width'] = $size[0];
$status['url'] = nicupload_file_uri($filename);

if($rfc1867) {
apc_store('upload_'.$id, $status);
}

nicupload_output($status, $rfc1867);
exit;
} else if(isset($_GET['check'])) { // Upload progress check
$check = $_GET['check'];
if(!is_numeric($check)) {
nicupload_error('Invalid upload progress id');
}

if($rfc1867) {
$status = apc_fetch('upload_'.$check);

if($status['total'] > 500000 && $status['current']/$status['total'] < 0.9 ) { // Large file and we are < 90% complete
$status['interval'] = 3000;
} else if($status['total'] > 200000 && $status['current']/$status['total'] < 0.8 ) { // Is this a largeish file and we are < 80% complete
$status['interval'] = 2000;
} else {
$status['interval'] = 1000;
}

nicupload_output($status);
} else {
$status = array();
$status['noprogress'] = true;
foreach($nicupload_allowed_extensions as $e) {
if(file_exists(NICUPLOAD_PATH.'/'.$check.'.'.$e)) {
$ext = $e;
break;
}
}
if($ext) {
$status['url'] = nicupload_file_uri($check.'.'.$ext);
}
nicupload_output($status);
}
}


// UTILITY FUNCTIONS

function nicupload_error($msg) {
echo nicupload_output(array('error' => $msg));
}

function nicupload_output($status, $showLoadingMsg = false) {
$script = '
try {
'.(($_SERVER['REQUEST_METHOD']=='POST') ? 'top.' : '').'nicUploadButton.statusCb('.json_encode($status).');
} catch(e) { alert(e.message); }
';

if($_SERVER['REQUEST_METHOD']=='POST') {
echo ''.$script.'';
} else {
echo $script;
}

if($_SERVER['REQUEST_METHOD']=='POST' && $showLoadingMsg) {

echo <<<END
<html><body>


Uploading...
Please wait

</body></html>
END;

}

exit;
}

function nicupload_file_uri($filename) {
return NICUPLOAD_URI.'/'.$filename;
}

function ini_max_upload_size() {
$post_size = ini_get('post_max_size');
$upload_size = ini_get('upload_max_filesize');
if(!$post_size) $post_size = '8M';
if(!$upload_size) $upload_size = '2M';

return min( ini_bytes_from_string($post_size), ini_bytes_from_string($upload_size) );
}

function ini_bytes_from_string($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}

function bytes_to_readable( $bytes ) {
if ($bytes<=0)
return '0 Byte';

$convention=1000; //[1000->10^x|1024->2^x]
$s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
$e=floor(log($bytes,$convention));
return round($bytes/pow($convention,$e),2).' '.$s[$e];
}

?>


and this is how I call the niceEdit,



<textarea name="content" id="gMenuEdit" style="width:100%; height:250px;"></textarea> 

bkLib.onDomLoaded(function() {
new nicEditor().panelInstance('gMenuEdit');
new nicEditor({fullPanel : true}).panelInstance('gMenuEdit');
new nicEditor({iconsPath : '../nicEditorIcons.gif'}).panelInstance('gMenuEdit');
new nicEditor({buttonList : ['fontSize','bold','italic','underline','strikeThrough','subscript','superscript','html','image']}).panelInstance('gMenuEdit');
new nicEditor({maxHeight : 100}).panelInstance('gMenuEdit');
new nicEditor({uploadURI : 'http://localhost/projects/ci/adminPanel/nicUpload.php'}).panelInstance('gMenuEdit');
});



I want to upload the image in my uploads directory as i have mentioned in the php file but still the image is uploaded to the editer's default server path.

0 comments:

Post a Comment