I have written a simple PERL script which will upload a file to the server. I use:
CKEDITOR.replace( 'editor1',{toolbar : 'Article',extraPlugins : 'autogrow',filebrowserUploadUrl : '/cgi-bin/articles/img_upload.pl'});
That uploads the image OK ... but the dialog then complains of no URI to image.
At present, I have my script return the file path to the dialog. I copy that, move to the first tab, and paste it into the top field. Then I can close dialog, and image appears in editor window.
There must be a way to get that data to place in the field automatically as it works that way when you use "CKFinder".
So do I need to add some extra code to the "config.js" file? (Can I add it - and the 'filebrowserUploadUrl to config file?)
I welcome your reply ASAP as I'm ready to take my membership site program "live"
CKEDITOR.replace( 'editor1',{toolbar : 'Article',extraPlugins : 'autogrow',filebrowserUploadUrl : '/cgi-bin/articles/img_upload.pl'});
That uploads the image OK ... but the dialog then complains of no URI to image.
At present, I have my script return the file path to the dialog. I copy that, move to the first tab, and paste it into the top field. Then I can close dialog, and image appears in editor window.
There must be a way to get that data to place in the field automatically as it works that way when you use "CKFinder".
So do I need to add some extra code to the "config.js" file? (Can I add it - and the 'filebrowserUploadUrl to config file?)
I welcome your reply ASAP as I'm ready to take my membership site program "live"
Re: How do you put upload image URL into text field?
However, knowing what needs to be updated, and getting that info back into the javascript code is so far eluding me.
Having downloaded the "CKFinder", that is too complex for my needs; I've got it working offline on my Apache server in that CKEditor calls the normal Windows file browser window, which in turn uploads file and updates the tab above. However, having looked at all the features "Finder" does have, it's "Taking A Hammer To Crack A Walnut" as we say in UK.
Another "fault": Finder uploads files to one folder. My script requires users to upload to a dynamically generated folder. In short, as each person uploads a picture to illustrate an article, both the article and folder are placed in a single folder for that user (If you're interested, the way I do this is to generate a cookie as the form/editor is called, which is posted to my script once the submit button is pressed. If the user uploads a picture, my script reads the cookie, and creates the folder for the image on the server prior to article submission)
I'm fairly adept at PERL coding, but boy ... this software is complex beyond belief. (But still a great product mind!)
Re: How do you put upload image URL into text field?
Seems I have per chance found the answer. It was mentioned in another forum post
It is mentioned on a page of the docs that is not indexed in the developers guide (very helpful!)
Here is the link:
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_%28Uploader%29/Custom_File_Browser
Re: How do you put upload image URL into text field?
#!/usr/bin/perl
use CGI qw/:standard/;
require "../masterlock.cgi";
## This is specfic to my script, but sets "$main_path" below to the absolute server path to folder
## This would be something like: "/home/xxxxxxxx/public_html"
## where "xxxxxxxx" is a short 8 digit code for your website domain name
# After the question mark (query string) is the data sent out by editor when image button is pressed
# cgi-bin/name_of_script.pl?type=Images&CKEditor=editor2&CKEditorFuncNum=2&langCode=de
# lang_code will vary dependant on what you've selected
$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $buffer);
foreach $pair (@pairs){
($name, $value) = split(/=/, $pair);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$in{$name} = $value;
}
$ck=$in{'CKEditor'};
$fn=$in{'CKEditorFuncNum'};
$lang=$in{'langCode'};
## Splits the three values into "name/pairs"
$art_temp=cookie('art_temp');
## Again, specific to my requirements. Set when editor loaded to screen
## Can be omitted. Remember to remove from path shown below.
$tmp_art_path="$main_path/articles/art_temp/$art_temp";
## The above is amended to where you want the image to be stored
## In this case within a new folder within "articles/art_temp" folder
mkdir ($tmp_art_path, 0777);
## Make the new folder within "articles/art_temp" folder
$fileName=param('upload');
$fileName =~ s!^.*(\\|\/)!!;
while (read(param('upload'), $buffer, 1024)) {
$outfile.= $buffer;
}
open (OUTFILE, ">$tmp_art_path/$fileName");
binmode(OUTFILE);
flock(OUTFILE, 2);
print OUTFILE $outfile;
flock(OUTFILE,8);
close (OUTFILE);
## Read file data in, and output it to the chosen folder with a filename
$file_url="/articles/art_temp/$art_temp/$fileName";
## The URL of where the image is stored
print "content-type: text/html\n\n";
print <<EOF;
<script language="javascript">
window.parent.CKEDITOR.tools.callFunction('$fn', '$file_url','' );
</script>
EOF
## The above makes URL appear in info box, and image in preview screen
Hope this helps