Robohelp.... about extension robohelp's file

Hi to evryone..
I am the very new person for Robohelp,Still i hav'nt this software. but i looking to use this.
i hav some basic question it.it is very simple for u but important for me..
plz help me...
1. what is the file extension of robohelp file after creating this..is it html file or not??
2.can we write down directly in robohelp or we hav to must use editor like ms word,notepad..etc??
3. how to integrate this robohelp file in our project. our project is in java or jsf??
4. what is best edition or version for me use.??
please please answer such question. i very confusing about all this question....
thanks in advance. it w'l takes ur valuable time but i hepls me lot..
plz

Hi opsmca and welcome to the RH forums. So many questions so let's get to them
The file extension from a RH project depends on the type of output being produced. Threre are many different output types available depending on your needs. I outlined these in a recent blog post which you can read here.
The RoboHelp product is in fact two beasts. The first RoboHelp for Word uses Word as its editor creating RTF files which are then compiled. However this is little used these days. The other application is RoboHelp HTML which has its own in built WYSIWYG editor (it looks similar to Word) that creates the underlying HTML used to render the documentation topics. With this you can still have writers writing in Word or FrameMaker and then import this into RoboHelp. You can even dynamically link Word or FrameMaker files to your RoboHelp HTML project making the process of getting any updates very easy.
The answer to this question depends on the output type you are using (see question 1). Each output type has its own deliverable and as such requires a different method of integration. You may also want to consider how context sensitive help calls are handled. My advice though is not to fall into the trap of saying you need JavaHelp just because your app is Java.
RoboHelp 8 is the current version and is the only one you're likely to find in the shops. If you want to use simulations, FrameMaker in any shape or form you may want to consider buying the Adobe Technical Communication Suite. The latest version is 2.5 and includes RoboHelp, FrameMaker, Captivate, Acrobat Professional and assorted other applications and utilities.
Finally I'd really recommend that you at the very least download a RoboHelp trial. This is a fully working version that you can use for 28 days. It should give you a good idea of further questions to ask! There are also a number of useful RoboHelp resources you can tap into:
Peter Grainge's site
Technical Communications Suite resources
  The RoboColum(n)
  @robocolumn
  Colum McAndrew

Similar Messages

  • Can Robohelp import native Adobe Illustrator file formats?

    I am thinking about getting Robohelp, but I would like to know if Robohelp can import the native Adobe Illustrator (.ai) file format directly?  I do not want to have convert my Illustrator files to .jpg, or any other file format that would lose any vector based graphics and/or graphics quality, before bringing the image into Robohelp.  I am unfamiliar with both Illustrator and Robohelp so any information will be appreciated.  Thanks!!

    Hi there
    In addition to what Colum offered, if this capability is important to you, you should consider submitting a Wish Form to alert Adobe that this is a need in the real world. For folks to import Illustrator files into RoboHelp. After all, isn't Illustrator an Adobe product?
    Link to the Wish Form is in my sig.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7 or 8 within the day - $24.95!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

  • Migrate RoboHelp 2002 with RoboHelp 7

    Hi there,
    I want to convert my hold RoboHelp file with version 7 or 8, i don't know today which one i must choose. But i got both and i began to convert with 7 first.
    My version into «Help about robohelp» Robohelp for winhelp 2002.r2. Build 1092.
    If needed, i can send you the detail of all file included in the version (DLL).
    First, the way i go, was suggested by johndaigle in problem:
    http://forums.adobe.com/message/736139#736139
    I do this:
    «open RoboHelp for Word and from the File menu, click New > select the Import tab
    and choose Other Help Projects and locate the .hpj project from there. This will convert the project to RoboHelp for Word v6». I compile the project. I join the result generated. If it's suppose to work on the first time, i'm really not convice. I had topic coded with html jump on a JPEG file and the result is really bizarre. If i open my result HLP file and go into the page with the image, I see a broken text who said the camera.bmp is missing. Second, when i click on the suppose to be link on an image, i falling on other part of my help text, who as nothing concerning my JPG image but I see some other help text. If I changed my Image Folders (BMROOT) sequence, and I re-compile, i can't go further because i got the message; The I:\fof006\RBHelp7\Ventex\!SSL!\Winhelp_4\VENTEF.hlp file is not a Windows Help file or the file is corrupted. I go on my drive I:\ and path to see if my HLP file and the content are there. He's there, but he remain 0 bytes.
    Anybody can help me on the way to proceed to convert or migrate. Naybody can help me on the problem with an image call by an html jump. All the problem said here, was not present on my older version and working fine !
    Francis

    Hi princess betty,
    First, if could help, I join an image of my version of RoboHelp we have here.
    We already have files in DOC, PRS RBH and RTF for result after we built our HLP; I give you a sample:
    Auto1.doc, Auto1.prs, Auto1.rbh, Auto1.rtf
    Auto10.doc, Auto10.prs, Auto10.rbh, Auto10.rtf
    Auto11.doc, Auto11.prs, Auto11.rbh, Auto11.rtf
    For the time we can't think change the extension result other than HLP, because the result is re-used inside another system and by the moment we just want made an update of RoboHelp before thinking produce the file in other form than winhelp4 or win2000.
    So, i'm gonna try the suggestion you made to try convert our past system by opening a new project and import all the DOC file. I'm not really sure, but i'm gonna try. At this time, if I open a new project at the opening of robohelp and I use the IMPORT, the result was not too bad and better by using Robohelp 8 than 7. And by the way, we used some special characters, indentation and bullet native from word. So, the DOT file is important, but be change.
    You can feed me some other information if it's possible for you to help me further. I'm gonna try some solution and check if the result could be good for us.
    So, thank for the moment for your help,
    Francis

  • Running RoboHelp 10 and RoboHelp 11 on the same system

    Background
    Windows 7, 64-bit operating system.
    Upgraded RoboHelp 10 to RoboHelp 11 this week. Upgraded my RH10 WebHelp Proj project (released with our 2.0 application) to start editing for release with 3.0 application next June .
    The upgrade did not uninstall RoboHelp 10.
    I work from within Visual Studio 2010 Professional. (I know that this is not a Source Control thread, but my issues are intertwined here.)
    I create WebHelp Pro (even though we are not yet publishing to RH Server, although we're working on it!).
    I check the output into Release folders in Souce Control, and the build picks up the files for installation with our application.
    Questions
    If I need to update the 2.0 application Help, does anyone know whether I can still use RH10 to update that project? (I've posed the question to an Adobe consultant, but have not yet heard back.)
    If I can't use RH10 to update the 2.0 application Help (and have to open the 2.0 project in RH11 and, therefore, upgrade it), are there new things in RH11 that could affect the WebHelp Pro output and, therefore, affect the use of the WebHelp Pro HTM files by the application? (Our release engineer believes that, for version control purposes, I must make changes to the 2.0  project in the same RH Client used to develop it.)
    Thanks for any help.
    Carol Levine
    AIR Worldwide

    Hi,Carol
    First, (and to reiterate what Rick said) if you are not publishing to RoboHelp Server right now. Do NOT use WebHelp Pro. The Pro flavor is strictly for hosting on a RoboHelp Server installation.
    The good news is that when and if you do decide to use RoboHelp Server, you simply take the Rh project (whether from Rh 10 or 11) and publish it with the WebHelp Pro SSL. It sounds like there is a some confusion between RoboHelp Server and Source Control. It is a common option to use RoboHelp Server and Source Control. But they are mutually exclusive. (While both may be used, they have nothing to do with one another.)
    If you think about it, RoboHelp Server is output (by definition not "source")
    So, you can continue using Rh 10 and 11 clients on the same computer, but as you note, you cannot open an Rh 10 project in Rh 11 because it is a one-way forward conversion (as Peter said).
    As for publishing, be aware that when you move to RoboHelp Server, the publishing workflow is different. The web admin can't simply copy/paste WebHelp Pro output (from source control as you describe) to the Rh Server (or, as you said, "pick up files"). The project must be published from the RoboHelp 10/11 client directly to the Rh Server. This is because Rh Server is a database application and in order for the database to be "aware" of the new content, it must come from the RoboHelp client app (10 or 11). Also, in terms of Application Help and context sensitivity, there is a CSH API and a syntax that is used to call the Rh Server help topics from the application. This is covered in the online help. See the sub head "Access context-sensitive Help" in the Adobe RoboHelp Server 9 * RoboHelp Server Web Administrator tasks as well as Adobe RoboHelp 11 * Program Help for web pages
    Thanks
    John
    John Daigle
    Adobe Certified RoboHelp and Captivate Instructor
    Evergreen, Colorado
    www.showmethedemo.com

  • Retaining format of table borders of Help done in Robohelp 7 into RoboHelp 9

    Does anyone know how to import or retain the properties of table borders/cells of a Compiled HTML Help Module that was generated in RoboHelp 7 into RoboHelp 9? I'm using RoboHelp 9 for my work and have to generate an HTML Help using RoboHelp 9. But the previous Help was generated in RoboHelp 7. When I have to generate the new Help in RoboHelp 9, this RoboHelp doesn't have the same properties of the table borders of the previous Help. Please help.

    I'm still not sure about what you are using and were using in Rh7. Rh for Word has an HPJ file to open it, Rh HTML has an XPJ file. They are different from an HHP file which is also a Rh HTML file.
    Both generate CHMs so once we are certain about that Rh HTML is what your Rh7 project was in, we can deal with the table problem.
    If Rh for Word is what is in use, then it should not have changed. In Rh HTML tables are now CSS driven but your old ones should not have been affected. Let's cover that when we are certain of the version of Rh the project is in.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Upgrading from Robohelp 6 to Robohelp 10

    Hi,
    I have been working on Robohelp 6 HTML to create a huge online help both CHM and Webhelp (Windows 7 and Office 2010). Now my company is planning to upgrade to Robohelp version 10.
    1. I want to know the impact it will have on my existing Robohelp 6 files.
    2. What points should I keep in mind before saying yes to such an upgrade?
    3. Has any problems been reported as yet after opening the Robohelp 6 files in Robohelp 10?
    4. Can I directly upgrade from Robohelp 6 to Robohelp 10?
    Would really appreciate some help on this. I don't want to recommend something which might end up causing problems for me.
    Thanks

    Hi
    I upgrated from version 7 to 9 about a year ago and it was only possible using RH 8.
    My project - created in RH 7 - was pretty messed up when I tried to upgrade directly from RH 7 to RH 9.
    I known this answer doesn't solve your problem but it's just a little info about what to expect if you try to jump over 3 versions.
    Ulrik

  • RoboHelp 11 to RoboHelp 10?

    Can I save RoboHelp 11 as RoboHelp 10? is there a compatibility issue? My colleagues have 10 and I have 11. We share files. Will this be a problem?

    @VT...
    As your question is the reverse of what this thread is about, it might have been better to start a new thread.
    The file format is the same but the HTML will have some differences. In theory any Rh HTML project can be opened in any later version but occasionally there can be issues if you are skipping many versions. In your case you should be OK. Please don't do as some folks do and ask for a guarantee as ultimately it depends on what you may have put in your topics. The answer is to zip up a copy of your projects so that you have a clean copy if something should go wrong. I recommend zipping rather than copying as it is too easy to later open that copy and mess it up for all eternity. Zipped copies cannot be opened and they can create clean copies as many times as you want.
    See the RoboHelp Tour on my site for information about what was introduced and changed in Rh11. Also see the samples for working projects explaining the changes.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Rename file extension during a file upload ??

    I need to rename the extension of a file at some point during the file upload. I am not sure where to do this at.
    The file needs to be renamed before it is written to the directory.
    Basically, the file will come in with a .txt or .doc type. Based on a users profile, I will change the type to a non-relavent number such as 1111.
    Here is my upload servlet. Can you tell me where to change the type so it will write the file with the new extension?
    Thanks.
    public class FileExport {
    //restrict upload files to 1 Meg
    private static final int DEFAULT_MAX_POST_SIZE = 1024 * 1024;
    private static final String NO_FILE = "unknown";
    private HttpServletRequest req;
    private File dir;
    private int maxSize;
    private Hashtable parameters = new Hashtable(); // name - Vector of values
    private Hashtable files = new Hashtable(); // name - UploadedFile
    public FileExport(HttpServletRequest request,
    String saveDirectory) throws IOException {
    this(request, saveDirectory, DEFAULT_MAX_POST_SIZE);
    // request the servlet request
    // saveDirectory = directory in which to save any uploaded files
    // maxPostSize = maximum size of the POST content
    public FileExport(HttpServletRequest request,
    String saveDirectory,
    int maxPostSize) throws IOException {
    // check values
    if (request == null)
    throw new IllegalArgumentException("request cannot be null");
    if (saveDirectory == null)
    throw new IllegalArgumentException("saveDirectory cannot be null");
    if (maxPostSize <= 0) {
    throw new IllegalArgumentException("maxPostSize must be positive");
    // Save the request, dir, and max size
    req = request;
    dir = new File(saveDirectory);
    maxSize = maxPostSize;
    // Check saveDirectory is truly a directory
    if (!dir.isDirectory())
    throw new IllegalArgumentException("Not a directory: " + saveDirectory);
    // Check saveDirectory is writable
    if (!dir.canWrite())
    throw new IllegalArgumentException("Not writable: " + saveDirectory);
    // Now parse the request saving data to "parameters" and "files";
    // write the file contents to the saveDirectory
    readRequest();
    public FileExport(ServletRequest request,
    String saveDirectory) throws IOException {
    this((HttpServletRequest)request, saveDirectory);
    public FileExport(ServletRequest request,
    String saveDirectory,
    int maxPostSize) throws IOException {
    this((HttpServletRequest)request, saveDirectory, maxPostSize);
    // Returns the names of all the parameters as an Enumeration of
    // Strings. It returns an empty Enumeration if there are no parameters.
    public Enumeration getParameterNames() {
    return parameters.keys();
    // Returns the names of all the uploaded files as an Enumeration of
    // Strings. It returns an empty Enumeration if there are no uploaded
    // files. Each file name is the name specified by the form, not by
    // the user.
    public Enumeration getFileNames() {
    return files.keys();
    // Returns the value of the named parameter as a String, or null if
    // the parameter was not sent or was sent without a value.
    public String getParameter(String name) {
    try {
    Vector values = (Vector)parameters.get(name);
    if (values == null || values.size() == 0) {
    return null;
    String value = (String)values.elementAt(values.size() - 1);
    return value;
    catch (Exception e) {
    return null;
    // Returns the values of the named parameter as a String array, or null if
    // the parameter was not sent.
    public String[] getParameterValues(String name) {
    try {
    Vector values = (Vector)parameters.get(name);
    if (values == null || values.size() == 0) {
    return null;
    String[] valuesArray = new String[values.size()];
    values.copyInto(valuesArray);
    return valuesArray;
    catch (Exception e) {
    return null;
    // Returns the filesystem name of the specified file, or null if the
    // file was not included in the upload. A filesystem name is the name
    // specified by the user. It is also the name under which the file is
    // actually saved.
    public String getFilesystemName(String name) {
    try {
    UploadedFile file = (UploadedFile)files.get(name);
    return file.getFilesystemName(); // may be null
    catch (Exception e) {
    return null;
    // Returns the content type of the specified file (as supplied by the
    //client browser), or null if the file was not included in the upload.
    public String getContentType(String name) {
    try {
    UploadedFile file = (UploadedFile)files.get(name);
    return file.getContentType(); // may be null
    catch (Exception e) {
    return null;
    // Returns a File object for the specified file saved on the server's
    // filesystem, or null if the file was not included in the upload.
    public File getFile(String name) {
    try {
    UploadedFile file = (UploadedFile)files.get(name);
    return file.getFile(); // may be null
    catch (Exception e) {
    return null;
    // method that actually parses the request.
    protected void readRequest() throws IOException {
    // Check the content length to prevent denial of service attacks
    int length = req.getContentLength();
    if (length > maxSize) {
    throw new IOException("Posted content length of " + length +
    " exceeds limit of " + maxSize);
    // Check the content type to make sure it's "multipart/form-data"
    // Access header two ways to work around WebSphere oddities
    String type = null;
    String type1 = req.getHeader("Content-Type");
    String type2 = req.getContentType();
    // If one value is null, choose the other value
    if (type1 == null && type2 != null) {
    type = type2;
    else if (type2 == null && type1 != null) {
    type = type1;
    // If neither value is null, choose the longer value
    else if (type1 != null && type2 != null) {
    type = (type1.length() > type2.length() ? type1 : type2);
    if (type == null ||
    !type.toLowerCase().startsWith("multipart/form-data")) {
    throw new IOException("Posted content type isn't multipart/form-data");
    // Get the boundary string; it's included in the content type.
    // Should look something like "------------------------12012133613061"
    String boundary = extractBoundary(type);
    if (boundary == null) {
    throw new IOException("Separation boundary was not specified");
    // Construct the special input stream we'll read from
    MultipartInputStreamHandler in =
    new MultipartInputStreamHandler(req.getInputStream(), length);
    // Read the first line, should be the first boundary
    String line = in.readLine();
    if (line == null) {
    throw new IOException("Corrupt form data: premature ending");
    // Verify that the line is the boundary
    if (!line.startsWith(boundary)) {
    throw new IOException("Corrupt form data: no leading boundary");
    // Now that we're just beyond the first boundary, loop over each part
    boolean done = false;
    while (!done) {
    done = readNextPart(in, boundary);
    // A utility method that reads an individual part. Dispatches to
    // readParameter() and readAndSaveFile() to do the actual work. A
    // subclass can override this method for a better optimized or
    // differently behaved implementation.
    protected boolean readNextPart(MultipartInputStreamHandler in,
    String boundary) throws IOException {
    // Read the first line, should look like this:
    // content-disposition: form-data; name="field1"; filename="file1.txt"
    String line = in.readLine();
    if (line == null) {
    // No parts left, we're done
    return true;
    else if (line.length() == 0) {
    // IE4 on Mac sends an empty line at the end; treat that as the end.
    // Thanks to Daniel Lemire and Henri Tourigny for this fix.
    return true;
    // Parse the content-disposition line
    String[] dispInfo = extractDispositionInfo(line);
    String disposition = dispInfo[0];
    String name = dispInfo[1];
    String filename = dispInfo[2];
    // Now onto the next line. This will either be empty
    // or contain a Content-Type and then an empty line.
    line = in.readLine();
    if (line == null) {
    // No parts left, we're done
    return true;
    // Get the content type, or null if none specified
    String contentType = extractContentType(line);
    if (contentType != null) {
    // Eat the empty line
    line = in.readLine();
    if (line == null || line.length() > 0) {  // line should be empty
    throw new
    IOException("Malformed line after content type: " + line);
    else {
    // Assume a default content type
    contentType = "application/octet-stream";
    // Now, finally, we read the content (end after reading the boundary)
    if (filename == null) {
    // This is a parameter, add it to the vector of values
    String value = readParameter(in, boundary);
    if (value.equals("")) {
    value = null; // treat empty strings like nulls
    Vector existingValues = (Vector)parameters.get(name);
    if (existingValues == null) {
    existingValues = new Vector();
    parameters.put(name, existingValues);
    existingValues.addElement(value);
    else {
    // This is a file
    readAndSaveFile(in, boundary, filename, contentType);
    if (filename.equals(NO_FILE)) {
    files.put(name, new UploadedFile(null, null, null));
    else {
    files.put(name,
    new UploadedFile(dir.toString(), filename, contentType));
    return false; // there's more to read
    // A utility method that reads a single part of the multipart request
    // that represents a parameter. A subclass can override this method
    // for a better optimized or differently behaved implementation.
    protected String readParameter(MultipartInputStreamHandler in,
    String boundary) throws IOException {
    StringBuffer sbuf = new StringBuffer();
    String line;
    while ((line = in.readLine()) != null) {
    if (line.startsWith(boundary)) break;
    sbuf.append(line + "\r\n"); // add the \r\n in case there are many lines
    if (sbuf.length() == 0) {
    return null; // nothing read
    sbuf.setLength(sbuf.length() - 2); // cut off the last line's \r\n
    return sbuf.toString(); // no URL decoding needed
    // A utility method that reads a single part of the multipart request
    // that represents a file, and saves the file to the given directory.
    // A subclass can override this method for a better optimized or
    // differently behaved implementation.
    protected void readAndSaveFile(MultipartInputStreamHandler in,
    String boundary,
    String filename,
    String contentType) throws IOException {
    OutputStream out = null;
    // A filename of NO_FILE means no file was sent, so just read to the
    // next boundary and ignore the empty contents
    if (filename.equals(NO_FILE)) {
    out = new ByteArrayOutputStream(); // write to nowhere
    // A MacBinary file goes through a decoder
    else if (contentType.equals("application/x-macbinary")){
    File f = new File(dir + File.separator + filename);
    out = new MacBinaryDecoderOutputStream(
    new BufferedOutputStream(
    new FileOutputStream(f), 8 * 1024));
    // A real file's contents are written to disk
    else {
    File f = new File(dir + File.separator + filename);
    out = new BufferedOutputStream(new FileOutputStream(f), 8 * 1024);
    byte[] bbuf = new byte[100 * 1024]; // 100K
    int result;
    String line;
    // ServletInputStream.readLine()
    // adds a \r\n to the end of the last line.
    // Since we want a byte-for-byte transfer, we have to cut those chars.
    boolean rnflag = false;
    while ((result = in.readLine(bbuf, 0, bbuf.length)) != -1) {
    // Check for boundary
    if (result > 2 && bbuf[0] == '-' && bbuf[1] == '-') { // quick pre-check
    line = new String(bbuf, 0, result, "ISO-8859-1");
    if (line.startsWith(boundary)) break;
    // Are we supposed to write \r\n for the last iteration?
    if (rnflag) {
    out.write('\r'); out.write('\n');
    rnflag = false;
    // Write the buffer, postpone any ending \r\n
    if (result >= 2 &&
    bbuf[result - 2] == '\r' &&
    bbuf[result - 1] == '\n') {
    out.write(bbuf, 0, result - 2); // skip the last 2 chars
    rnflag = true; // make a note to write them on the next iteration
    else {
    out.write(bbuf, 0, result);
    out.flush();
    out.close();
    // Extracts and returns the boundary token from a line.
    private String extractBoundary(String line) {
    // Use lastIndexOf() because IE 4.01 on Win98 has been known to send the
    // "boundary=" string multiple times. Thanks to David Wall for this fix.
    int index = line.lastIndexOf("boundary=");
    if (index == -1) {
    return null;
    String boundary = line.substring(index + 9); // 9 for "boundary="
    // The real boundary is always preceeded by an extra "--"
    boundary = "--" + boundary;
    return boundary;
    // Extracts and returns disposition info from a line, as a String array
    // with elements: disposition, name, filename. Throws an IOException
    // if the line is malformatted.
    private String[] extractDispositionInfo(String line) throws IOException {
    // Return the line's data as an array: disposition, name, filename
    String[] retval = new String[3];
    // Convert the line to a lowercase string without the ending \r\n
    // Keep the original line for error messages and for variable names.
    String origline = line;
    line = origline.toLowerCase();
    // Get the content disposition, should be "form-data"
    int start = line.indexOf("content-disposition: ");
    int end = line.indexOf(";");
    if (start == -1 || end == -1) {
    throw new IOException("Content disposition corrupt: " + origline);
    String disposition = line.substring(start + 21, end);
    if (!disposition.equals("form-data")) {
    throw new IOException("Invalid content disposition: " + disposition);
    // Get the field name
    start = line.indexOf("name=\"", end); // start at last semicolon
    end = line.indexOf("\"", start + 7); // skip name=\"
    if (start == -1 || end == -1) {
    throw new IOException("Content disposition corrupt: " + origline);
    String name = origline.substring(start + 6, end);
    // Get the filename, if given
    String filename = null;
    start = line.indexOf("filename=\"", end + 2); // start after name
    end = line.indexOf("\"", start + 10); // skip filename=\"
    if (start != -1 && end != -1) {                // note the !=
    filename = origline.substring(start + 10, end);
    // The filename may contain a full path. Cut to just the filename.
    int slash =
    Math.max(filename.lastIndexOf('/'), filename.lastIndexOf('\\'));
    if (slash > -1) {
    filename = filename.substring(slash + 1); // past last slash
    if (filename.equals("")) filename = NO_FILE; // sanity check
    // Return a String array: disposition, name, filename
    retval[0] = disposition;
    retval[1] = name;
    retval[2] = filename;
    return retval;
    // Extracts and returns the content type from a line, or null if the
    // line was empty. Throws an IOException if the line is malformatted.
    private String extractContentType(String line) throws IOException {
    String contentType = null;
    // Convert the line to a lowercase string
    String origline = line;
    line = origline.toLowerCase();
    // Get the content type, if any
    if (line.startsWith("content-type")) {
    int start = line.indexOf(" ");
    if (start == -1) {
    throw new IOException("Content type corrupt: " + origline);
    contentType = line.substring(start + 1);
    else if (line.length() != 0) {  // no content type, so should be empty
    throw new IOException("Malformed line after disposition: " + origline);
    return contentType;
    // A class to hold information about an uploaded file.
    class UploadedFile {
    private String dir;
    private String filename;
    private String type;
    UploadedFile(String dir, String filename, String type) {
    this.dir = dir;
    this.filename = filename;
    this.type = type;
    public String getContentType() {
    return type;
    public String getFilesystemName() {
    return filename;
    public File getFile() {
    if (dir == null || filename == null) {
    return null;
    else {
    return new File(dir + File.separator + filename);
    // A class to aid in reading multipart/form-data from a ServletInputStream.
    // It keeps track of how many bytes have been read and detects when the
    // Content-Length limit has been reached.
    class MultipartInputStreamHandler {
    ServletInputStream in;
    int totalExpected;
    int totalRead = 0;
    byte[] buf = new byte[8 * 1024];
    public MultipartInputStreamHandler(ServletInputStream in,
    int totalExpected) {
    this.in = in;
    this.totalExpected = totalExpected;
    // Reads the next line of input. Returns null to indicate the end
    // of stream.
    public String readLine() throws IOException {
    StringBuffer sbuf = new StringBuffer();
    int result;
    String line;
    do {
    result = this.readLine(buf, 0, buf.length); // this.readLine() does +=
    if (result != -1) {
    sbuf.append(new String(buf, 0, result, "ISO-8859-1"));
    } while (result == buf.length); // loop only if the buffer was filled
    if (sbuf.length() == 0) {
    return null; // nothing read, must be at the end of stream
    sbuf.setLength(sbuf.length() - 2); // cut off the trailing \r\n
    return sbuf.toString();
    // A pass-through to ServletInputStream.readLine() that keeps track
    // of how many bytes have been read and stops reading when the
    // Content-Length limit has been reached.
    public int readLine(byte b[], int off, int len) throws IOException {
    if (totalRead >= totalExpected) {
    return -1;
    else {
    if (len > (totalExpected - totalRead)) {
    len = totalExpected - totalRead; // keep from reading off end
    int result = in.readLine(b, off, len);
    if (result > 0) {
    totalRead += result;
    return result;
    // Class to filters MacBinary files to normal files on the fly
    // Optimized for speed more than readability
    class MacBinaryDecoderOutputStream extends FilterOutputStream {
    int bytesFiltered = 0;
    int dataForkLength = 0;
    public MacBinaryDecoderOutputStream(OutputStream out) {
    super(out);
    public void write(int b) throws IOException {
    // Bytes 83 through 86 are a long representing the data fork length
    // Check <= 86 first to short circuit early in the common case
    if (bytesFiltered <= 86 && bytesFiltered >= 83) {
    int leftShift = (86 - bytesFiltered) * 8;
    dataForkLength = dataForkLength | (b & 0xff) << leftShift;
    // Bytes 128 up to (128 + dataForkLength - 1) are the data fork
    else if (bytesFiltered < (128 + dataForkLength) && bytesFiltered >= 128) {
    out.write(b);
    bytesFiltered++;
    public void write(byte b[]) throws IOException {
    write(b, 0, b.length);
    public void write(byte b[], int off, int len) throws IOException {
    // If the write is for content past the end of the data fork, ignore
    if (bytesFiltered >= (128 + dataForkLength)) {
    bytesFiltered += len;
    // If the write is entirely within the data fork, write it directly
    else if (bytesFiltered >= 128 &&
    (bytesFiltered + len) <= (128 + dataForkLength)) {
    out.write(b, off, len);
    bytesFiltered += len;
    // Otherwise, do the write a byte at a time to get the logic above
    else {
    for (int i = 0 ; i < len ; i++) {
    write(b[off + i]);

    I am also need to rename a file and extension while uploadinf the file to the server. The oreilly example seems only save as the same file name and ext. I wonder if you have the ability chANGE OIT OR NOT. pLEASE LET ME KNOW
    thanks
    kansen

  • Upgrading RoboHelp 7 to RoboHelp 9 RoboSource

    Hi I'm Trying to upgrade Robohelp 7 to Robohelp 9 as we have just gone Windows7 we also use RoboSource.
    What are the steps to successfully upgrade?.

    Hi
    Steps I took.
    Opened Robohelp 7 made sure project could check in and out of Robosource, worked fine.
    Checked all files out of robosource via Robohelp 7.
    Upgraded to Robohelp 9 - was asked if I wanted lastest said yes.  Popup said some files could not be checked out.  Tried opening project in Robohelp 9 - popup corrupt .cpd tried deleting .cpd no joy.
    Re tried all the steps again with the files checked in to robosource no joy.
    Cannot open project in Robohelp 7 or RoboHelp 9 now!

  • How can I get an extension from a file...in JFileChooser

    I have got a problem here. Here I have a JFileChooser, I want to add in
    a FileFilter, and user could only see some type of file. But as long as I
    try to get the extension....It wont compile, could any one teach me how
    to get the extension of a file in JFILECHOOSER???
    ============================================
    import java.io.*;
    import java.io.File.*;
    import javax.swing.filechooser.FileFilter;
    public class MainFrame extends JFrame implements ActionListener {
    public MainFrame() {.............}
    private boolean chooseFile()
    JFileChooser fileChooser = new JFileChooser();
    fileChooser.setFileSelectionMode( JFileChooser.FILES_ONLY );
    FileChoser filtering = new FileChoser("txt");
    fileChooser.setFileFilter(filtering);
    fileChooser.addChoosableFileFilter(filtering);
    int selection = fileChooser.showOpenDialog( this );
    if ( selection == JFileChooser.CANCEL_OPTION )
    return false;
    if (selection == -1) {
    return false;
    File tmpfile = fileChooser.getSelectedFile();
    filename = tmpfile.toString();
    setTitle( "Smiggin Holes 2010 - " + filename );
    return true;
    static class FileChoser extends javax.swing.filechooser.FileFilter
    String extension;
    String description;
    public FileChoser(String extension, String description){
    this.extension = extension;
    this.extension = description;
    // Accept all directories and all gif, jpg, or tiff files.
    public boolean accept(File f)
    if (f != null)
    if (f.isDirectory())
    return true;
    String ext = getExtension(f); //<<<<<<<<<<<THE PROBLEM IS HERE WHEN I TRY TO GET THE EXTENSION OF THE FILE. IT CANT COMPILE
    System.out.println("aasdfasdf"+ext);
    if ((ext!=null)&&(ext.equals(extension)))
    return true;
    return false;
    // The description of this filter
    public String getDescription() {
    return "Just Text Files";
    ======================================
    Could you tell me what can I do? To get the extension of the file selected by the user?
    And What do I have to change?
    Regards,

    Hi,
    can you post your compile error and the code of getExtension().
    Regards
    Ldinka

  • Problem about Handling of Empty Files in File Adapter

    Hello everyone,
    NetWeaver 2004s --- XI
    In Sender i have a File Adapter.
    Now i meet a problem about Handling of Empty Files. When i send empty file, but don't cerate a leer message.
    I have seen following text in help document. But in adapter configuration i can not find the correspond parameter.
    can you give me some tips?
    Thx in advance
    best regards
    Yaning
    SAP Help Document über File Adapter
    +Handling of Empty Files
    Specify how empty files (length 0 bytes) are to be handled.
    &#9675;       Do Not Create Message
    No XI messages are created from empty files.
    The files are processed according to the selected Processing Mode.
    For example, if the processing mode is Delete, empty files are deleted in the source directory.
    &#9675;       Process Empty Files
    XI messages are created with an empty main payload.
    The files are processed according to the selected Processing Mode.
    &#9675;       Skip Empty Files
    No XI messages are created from empty files.
    Empty files are skipped and remain in the source directory.+
    Help Docu

    hi,
    it's available since Sp19 for XI 3.0
    and the corresponding SPS fpr XI 7.0
    http://help.sap.com/saphelp_nw04/helpdata/en/44/f565854b7341e6e10000000a1553f6/frameset.htm
    so probably you need to install the new SP
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Unwanted file extension inserted into file format list!

    I accidentally saved a .wav file with the .ses extension.  Now I've got the .ses extension included with .wav and .bwf extensions under the Save As Type box in my Save and Save As dialog windows.  Any advice on removing it?

    I just recreated your issue.  I saved a .wav file with the .ses extension at the end.  It did indeed put the .ses extension in with the .wav and .bwf extensions next to Windows PCM Wave File.
    I got rid of this by opening the affected file, doing a Save As, deleting the .ses extension from the file name when naming the file, then saving.  I closed the file, closed Audition, reopened Audition and the .ses extension was gone from the Windows PCM Wave File list.

  • How to know the filename and extension of a file in PKCS7  envelope

    Hi! I've a programm that makes a PKCS7 file. I'm enveloping just one file at a time. I want to know if there is a way to know the filename and extension of the file INSIDE de PKCS7 envelope. Because I receive a file that has .p7 extension, but the real document, the one to be decyprted, I don't know its name nor its extension, and I need both for writing it (I will not just invent some name).
    Best regards!

    The construct of the PKCS7 structure you have, is defined in rfc2633. The part defining EncapsulatedContent is introduced in CMS [rfc2639], where no such attribute for a file name is saved in the structure.
    In some occasions, when it is critical, organizations add own object identifier and attibutes to save such descrptivie information as filename and extension.
    A practical approach is, on the signing side, sign the file A.ext to A-ext.p7m resp. A-ext.p7s
    You can not assume a global approach to get back the original filename (if you have no agreement on not the signing peer as above) of the encapsulated data. The reason is, the encapsulated data field is general and it does not neccesarily mean it was a file (a part of a stream or any definite sequence of bytes in general).

  • Using the FilenameFilter interface to get the extension of a file

    Hello...
    I am trying to write a java program which is going to parse multiple xml documents and load them into the db. In a directory, there could be files other than xml files. Hence, i want to parse only files which have an .xml extension. I am using the FilenameFilter interface to get the extension of the files in a particular directory. However i am getting confused with the way it shd work...i am attaching herewith the code ...pl help me. I would appreciate if u could send me some sample code.
    /* Author : Jayashree */
    import com.xhive.XhiveDriverFactory;
    import com.xhive.error.XhiveException;
    import com.xhive.core.interfaces.XhiveTransactionIf;
    import com.xhive.dom.interfaces.XhiveDocumentIf;
    import com.xhive.core.interfaces.XhiveDatabaseIf;
    import com.xhive.core.interfaces.XhiveConnectionIf;
    import com.xhive.dom.interfaces.XhiveLibraryIf;
    import org.w3c.dom.Document;
    import java.io.*;
    public class MultiXML
    public static void main(String args[])
    try
    String administratorName = "Administrator";
    String administratorPassword = "secret";
    String DBName = "FirstDB";
    XhiveConnectionIf fConnection = XhiveDriverFactory.getDriver().getConnection();
    System.out.println("Got the connection");
    fConnection.connect(administratorName,administratorPassword,DBName);
    System.out.println("Connected");
    XhiveTransactionIf fTrans = fConnection.createTransaction();
    System.out.println("Transaction");
    fTrans.begin();
    System.out.println("Transaction begun");
    XhiveDatabaseIf fDBase = fTrans.getDatabase();
    String DBName1 = fDBase.getName();
    System.out.println(DBName1);
    XhiveLibraryIf rootLibrary = fDBase.getRoot();
    System.out.println("Got the root");
    File fDir = new File("e:/xhive");
    File[] files = fDir.listFiles(new FileFilter("xml"));
    int i = 0;
    while ((i < files.length))
    Document fDoc = null;
    System.out.println("Document Initialized");
    try
    fDoc = rootLibrary.parseDocument(new File(files[i]+".xml").toURL(), XhiveLibraryIf.PARSER_NO_VALIDATION);
    rootLibrary.appendChild(fDoc);
    System.out.println("Appended");
    catch (Exception e)
    e.printStackTrace();
    i++;
    fTrans.commit();
    System.out.println("Committed");
    fTrans.terminate();
    System.out.println("Terminated");
    fConnection.close();
    System.out.println("Connection Closed");
    catch(Exception e)
    System.out.println(e.getMessage());
    In the above code, I am trying to list all those files which have the filter as .xml. I am unable to understand what code i need to write in the accept method of the FilenameFilter interface which accepts the directory name and the file name. There could be a directory which consists of multiple xml files too..this is where i am finding a problem
    Regards,
    Jayashree

    This sample code uses an inner anonymous FilenameFilter that takes all readable files with a ".xml" extension.
    File[] fileList = dir.listFiles (new FilenameFilter () {
        public boolean accept (File dir, String name) {
            if (!name.trim().endsWith (".xml"))
                return false;
            File f = new File (dir, name);
            if (!f.isFile())
                return false;
            if (!f.canRead())
                return false;
            return true;
    });Please post any question if you don't understand.
    Matthieu

  • User Defined Extension functions XML file

    Hi,
    Can we define exception In custom XSLT function XML file.
    Like i have following Custom XSLT function XML-
    <?xml version="1.0" encoding="UTF-8"?>
    <extension-functions>
    <functions xmlns:uppercase="http://www.oracle.com/XSL/Transform/java/oracle.Uppercase">
    <function name="uppercase:GetName" as="string">
    <param name="fname" as="string"/>
    <param name="lname" as="string"/>
    </function>
    </functions>
    </extension-functions>
    So in case i need to throw an exception in my java function GetName so how can i define that in XML?
    Please give some suggestion?
    Thanks.

    Hi,
    Thanks for your reply. When I created extensions.xml (as advised by you) and tried specifying it as User Defined Extension Functions Config file, I get the following error:
    Invalid User Extension Functions Config File
    Invalid value 'object' for attribute:'as' line 5 column 52
    i.e. the following line:
    <function name="extensions:getMSPDate" as="object">
    Any pointers on what will be the correct value for attribute 'as' for element 'function'?
    Also, what is the default namespace being used in the extensions.xml?
    Is there a link for more documentation on the format for extensions.xml?

Maybe you are looking for

  • Getting error in dispaling smartform

    Hi , I have an application where the below BAPI is displaying the smartform in ABAP webdynpro. The output is taken from a TLINE table which consists of the special characters. The requirement is to display this smartform from Webdynpro Java but the o

  • Force z-sorting of objects?

    I am trying to create a 3d interface that displays on top/front of the 3d scene. I have different objects I want to display in the correct order but because of perspectives of different cameras, and the moving/animating of some objects, they don't al

  • I OS 6.1.2 BUG IN iMessage when a iMessage was not send and you press send again

    When i try to resend an iMessage the IOS 6 send a normal message SMS in the setting in message i have set no for send SMS when IMessage is not avaiable. ITALIANO: Quando il telefono con IOS 6.1.2 non riesce ad inviare un iMessage e provo a reinviarlo

  • Build a dicom server with web logic and Oracle Multimedia DICOM

    Its it possible, build My own dicom server...only using web logic + java + Oracle Multimedia DICOM ?

  • What is incoterms and how it comes

    Hi, What are incoterms ( no abbrivation pl)? How the incoterms comes from? I mean is it taking from sold to pary , ship to party, bill to party or payer? Thanks in advance