Queries on RAR 5.3 static files upload?

Hi all,
We have some doubts in uploading static text files in RAR 5.3 version. Can anybody please clarify at the earliest?
1) Can we prepare the SoD rule set in the static text files (as provided by SAP during installation)
till Action (t- code) level conflicts and upload the same. After that cam we add/change the
authorization objects manually as per the business requirement? Whether this is possible?
Does a small SPACE in the text file will impact the rule set uploading?
2) If we are configuring the rule set manually i.e when we are assigning t-codes to the functions,
we believe the authorization objects will gets picked up automatically from the back end system for that particular t-code and the object values can be edited as per the SoDs of the business requirement? Is our understanding correct?
If this is true, refer to question 1 whether we will get the authorization objects in case of
uploading the text files (Business process, Funcitons, rule set,action level) only at action
level?
3) Once if we have used the text files for uploading the rule set can we edit them manually i..e disabling  the t-codes from function, deleting the risk ids etc.,. ORELSE even the changes has to be made in the text files and upload again replacing the existing rule set whenever there are changes in the SoD rule set?
Thanks and Best Regards,
Srihari.K

issue resovled

Similar Messages

  • APEX 3.1.2 Static File Upload Issues

    We are still running on APEX 3.1.2 though we hope to go to 4 very soon.
    We had a production problem this past week that is perplexing. I have seen other posts referencing similar issues but no solutions.
    We have an application that has several Static File Javascripts (.js). We already ran into the IE Upload bug so we only upload in Mozilla now.
    We had changes to one of the .js files (identity.js). I deleted the old file using the Shared Components screen and uploaded the new one. The action was "Successful" but the file was still the old version. We deleted a file of 73 lines of code and uploaded a new version of 28 lines. After successful upload, we still would get the 73 line version . The app was still getting that version too.
    I deleted it many times and tried again. I ran scripts to do both the delete and upload. I even deleted the file manually from the FLOWS_FILES table that held it. Still got the old version.
    We bounced the server (thinking it was cached somewhere) - still got the old version. Finally, in desperation, I started cloning the app to another app number in another Workspace. Since we use aliases, I thought I could use a clean Workspace and uplad the new file there. This worked but - suddenly the old Workspace started using the correct file.
    Is ther some secret cache somewhere that needs to be cleared out? I did not want to start randomly clearing out caches and there is no documentation on this issue.
    Is it something about our config - we have Oracle HTTP Server, OC4J, and modplsql for this environment with a 10g database.
    Any insight would be appreciated - my manager does not like "it fixed itself magically".

    We ruled out the browser caching by trying the app on several other people's PCs.
    I am thinking it is being cached somewhere in the APEX server environment but cannot find any documentation on where or what that might be.
    I think I might have triggered a refresh when I was trying to implement a cloned version (in a different Workspace). It seems that the scope of a JS file is within its Workspace so we figured that a new Workspace would treat the changed file as a new file - and it did. During this process, we had duplicate ALIAS for a minute and I think that confused the APEX App Engine and triggered the refresh.
    But that is a SWAG opinion.
    I also thought of "versioning" the JS files but our developers are not too keen. If we don't find another solution, that may be what we have to do.

  • APEX 3.1 - Cache of Workspace Images or Static Files

    Hi,
    I attended the ODTUG Conference and they mentioned that in 3.1 Images and Static files (uploaded as shared components) are now cached. Where in the documentation does it state this? Can you configure the cache settings?
    Thank you,
    Martin

    Hi Joel,
    >> See....if you came to one of these conferences like OOW or ODTUG, I could …
    Yeah, rubbed it in, why don’t you :)
    >> It has nothing to do with the upload procedure …
    That was my mistake. I meant the downloading/delivery procedure.
    >> I'm not sure I understand what you mean by "free files"
    By “free” files, I meant data files that were uploaded to the database, like scanned documents etc., and not the classic static files like JavaScript, CSS, or the firm logo image.
    Now, with 3.1 native support of BLOB, and the rumors that your team is working on a revised version of the document library package, things might be simpler for issues like (simple) content management.
    >> Please let me know if this does not make sense.
    Tyler post came right on time, to fulfill your pseudocode explanation. After reading Tyler post, I better understand what you meant, and how I can achieve it. At first, I thought that all the HTTP header stuff id done for you, by some built-in or Oracle supplied package, but now I understand it’s the developer responsibly.
    One more thing about Tyler post, which was published prior to version 3.1. He mentioned the need to add some specific entries to the DAD, in order to utilize this technique:
    “If you’re using Oracle HTTP Server (Apache + mod_plsql), add the following lines to your Database Access Descriptor (DAD), then bounce OHS to apply your changes:
    PlsqlCGIEnvironmentList HTTP_IF_NONE_MATCH
    PlsqlCGIEnvironmentList IF_MODIFIED_SINCE “
    Is this still the case with 3.1? I don’t remember reading about these specific entries in the installation documentation. My current DAD don’t includes these entries, and still it seems like the caching of static files is working (I tested against apex.oracle.com).
    Thanks and regards,
    Arie.

  • Error When Uploading a CSS file or  Static file

    When I am uploading a CSS or Static file , I get the following error. But I can upload images files with no issues.
    ORA-02291: integrity constraint (FLOWS_FILES.WWV_FLOW_FILE_OBJ_FK) violated - parent key not found
    Oracle XE upgraded to Apex 3.1
    Please help
    George

    Yes, if you upload an image on a normal Oracle Apex Database its stored in the DB.
    But, if you remember, when you configire apex you specify an images directory /i/.
    Under this directory you will find all the images that apex uses as well as css files, etc.
    If you place your image in this directory you can reference it my modifying the appropriate stylesheet/template.
    So, for example, you cna place your own stylesheets in the appropriate directory on the server.

  • Implement IP File Upload to a web template (with queries) - HTML Coding?

    Dear experts,
    we have implemented integrated planning - file upload.
    now we want to create a web template , which should include some queries AND also the file upload in a separat tab in this template.
    following link (file upload) should be included in the web template:
    http:///sap/bc/webdynpro/sap/zrsplf_file_upload?planning_sequence=ZACOMK_01_PS1&sap-client=200&sap-language=DE
    I don´t have any html-knowledge.
    Is there a standard html-coding available, which I could use and implement in a container item?
    many thanks for your help!!
    best regards
    Roland

    Thanks so much, Rick! That post was exactly what I needed -- and now I have another resource to search for next time.
    There is one little caveat, for anyone else who needs to use this. I had to change the line that sets the Content-Type header to use a semicolon instead of a comma. After this change, the resulting HTTP request is identical to the one generated by WebKit for form submission.
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];

  • Embeding Uploaded PDF Static Files - Problems

    Good morning all.
    I have an application where users enter details and need to read through a selection of documents depending on what details they entered. I have uploaded 5 documents to my Apex server and used the following code to embed them inline (within the HTML itself)
    <EMBED
    SRC="http://server_name:7777/pls/apex/wwv_flow_file_mgr.get_file?p_security_group_id=824213546944709&p_fname=file1.PDF&p_inline=NO"
    HEIGHT=500 WIDTH=800>This code was taken from the links on the Shared Components -> Static Files page in the Application builder
    This all worked file on my development server, all the documents were displaying inline with the HTML document (Example - http://www.planetpdf.com/mainpage.asp?webpageid=1682 Example #1)
    However, I realised one of the documents being displayed was wrong - file 1 was showing instead of file 2. I had embeded the wrong file in the page. So I just changed the &p_fname to file2.pdf. When I ran the page, all the other embeded documents were working fine, but the recently updated one was popping out of the window, and the region where I embeded the file was blank.
    Now, I just exported my application to a new server for testing, and have had to change all the embeded regions to point to the newly uploaded files on the new server. None of these now show anything. They either show the little picture icon (red square, blue circle, red triangle) if I include the &p_inline=YES code, the same icon if I say &p_inline=NO instead, or if I drop this argument, the entire region is blank, and the Adobe PDF icon displays streched across the region after a new seconds.
    Any hints?
    Cheers,
    Kate

    Thanks for that Denes.
    I just have one question - the source for your XML Report region shows the following code
    DECLARE
       v   VARCHAR2 (200);
    BEGIN
       v :=
             'SELECT '
          || '''<iframe src="#OWNER#.File_Table_Disp_Pr?p_file='
          || 2967670122524254593
          || '"'
          || ' height="880" width="600"></iframe>'''
          || ' document_display'
          || ' FROM DUAL';
       RETURN v;
    END;The "2967670122524254593" refers to that file that was uploaded, yes? How do I find this number for my uploaded documents? I think it was a table somewhere, but I can't for the life of me remember which one.
    Update: I found it - apex_applcation_files. I should just be able to insert the ID of the document I want in there, yes? I copied my document ID number (select id from apex_application_files) but the document is 404'ing on me.
    help?

  • Bug uploading static files

    I notice one bug when uploading static files. If you try to upload static file with same name as existing one and to same application you'll get error "Static file name already exists" and the file will be uploaded with flow_id 0 (view apex_application_files), but it won't be visible in APEX Builder. Also, when you try to download this file from builder, it looks like APEX randomly chooses which one to download.
    I've tried this on apex.oracle.com and same thing.
    Br,
    Marko

    Hi Marko,
    Currently APEX doesn't have any version control for static files so I suggest adding a version number to the file name when uploading.
    Thanks
    Paul

  • Viewing uploaded static files

    Hello.
    We have a product demo we created in Flash file format that we are trying to post onto our Apex application's site.
    The demo is comprised of a few files that work together as long as they sit in the same directory. They are of the following format:
    html
    mp4
    swf
    pnp
    xml
    js
    I loaded them one by one into my ApEx application as static files.
    When I reference them through my application, they don't work. The flash presentation does not run.
    Any thought what it might be?
    FYI, we have uploaded other static files into our app for other purposes (doc, pdf). Those work just fine.
    thanks
    Boris

    Boris,
    The demo is comprised of a few files that work together as long as they sit in the same directory.
    I think the problem is what I've quoted from your message. Flash file needs the other files within the same directory and static files are stored on the database and called by a function.
    I think the solution is to upload your files to the server filesystem.
    Paulo Vale
    http://apex-notes.blogspot.com

  • Uploading javascript file under static files

    We uploaded the javascript file under static files. By default the mime type is "application/octet-stream". We are accessing this js file in our application however this is not working.
    Is this because the mime type is "application/octet-stream"?
    Please let us know how to change the mime type to javascript.

    Actually, we were having the same problem and determined it to be an IE bug. If we upload the .js file using Firefox, it saves as the correct mime type, x-javascript. If we use IE8, it gets uploaded as octet. Because of this, Firebug did not recognize the file, we got the following error: "the resource from this url is not text: " with the link to the uploaded file. Hence, none of the functions included in the file worked in our application.

  • HELP! File Upload Servlet and Internet Explorer

    Hello people. I hope this is an easy problem to solve...
    I have a servlet upload program that works using Mozilla browser (www.mozilla.org), but for some reason it doesn't work using Microsoft IE. The servlet is also using the servlet upload API from Apache (commons).
    I'm using IE version 6.0.2800.1106 in a Win98SE host computer. I get a cannot find path specified error message (see below). At work, I also get the same error message using IE, but don't know what version. The OS is XP. Unfortunately, at work, I can't install Mozilla browser (or any software-company policy) to see if Mozilla works there too. I would've like to have tested to see if the upload program worked on Mozilla on a truly remote computer.
    So I figured, it must be a IE configuration issue, but darn it!! I began by resetting IE to default settings, but still have the problem, I played around with several different combinations of settings in "Tools"-->"Internet Options...", and I still get the error message. Someone PLEASE HELP ME!!!
    Dunno, if it will help, I've also pasted the upload servlet source code below and the html file that's calling the upload servlet, but you still need the Apache commons file upload API.
    Trust me on this one folks, for some reason it works for Mozilla, but not for IE. With IE, I can at least access web server, and therefore, the html file that calls the upload servlet , so I don't think it's a Tomcat configuration issue (version 5.0). I actually got the code for the file upload servlet from a book relatively new in the market (printed in 2003), and it didn't mention any limitations as far as what browser to use or any browser configuration requirements. I have e-mailed the authors, but they probably get a ton of e-mails...
    Anyone suggestions?
    Meanwhile, I will try to install other free browsers and see if the file upload program works for them too.
    ERROR MESSAGE:
    "HTTP Status 500 -
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    javax.servlet.ServletException: C:\TOMCAT\webapps\MyWebApps\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
         com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:43)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause
    java.io.FileNotFoundException: C:\TOMCAT\webapps\MyWebApp\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
         java.io.FileOutputStream.open(Native Method)
         java.io.FileOutputStream.(FileOutputStream.java:176)
         java.io.FileOutputStream.(FileOutputStream.java:131)
         org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:392)
         com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:36)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    note The full stack trace of the root cause is available in the Tomcat logs.
    Apache Tomcat 5.0.16"
    FILE UPLOAD SERVLET source code:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import org.apache.commons.fileupload.*;
    import java.util.*;
    public class FileUploadCommons extends HttpServlet {
    public void doPost(HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.print("File upload success. <a href=\"/MyWebApp/files/");
    out.print("\">Click here to browse through all uploaded ");
    out.println("files.</a><br>");
    ServletContext sc = getServletContext();
    String path = sc.getRealPath("/files");
    org.apache.commons.fileupload.DiskFileUpload fu = new
    org.apache.commons.fileupload.DiskFileUpload();
    fu.setSizeMax(-1);
    fu.setRepositoryPath(path);
    try {
    List l = fu.parseRequest(request);
    Iterator i = l.iterator();
    while (i.hasNext()) {
    FileItem fi = (FileItem)i.next();
    fi.write(new File(path, fi.getName()));
    catch (Exception e) {
    throw new ServletException(e);
    out.println("</html>");
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {
    doPost(request, response);
    HTML PAGE that calls the upload servlet:
    <html>
    <head>
    <title>Example HTML Form</title>
    </head>
    <body>
    <p>Select a file to upload or browse
    currently uploaded files.</p>
    <form action="http://##.##.##.####/MyWebApp/FileUploadCommons"
    method="post" enctype="multipart/form-data">
    File: <input type="file" name="file"><br>
    <input value="Upload File" type="submit">
    </form>
    </body>
    </html>
    Thanks in advance for any assistance.
    -Dan

    I'm guessing what is happening is that Mozilla tells the servlet "here comes the file myfile.zip". The servlet builds a file name for it:
        String path = sc.getRealPath("/files");
        // path is now C:\TOMCAT\webapps\MyWebApps\files\
        fi.write(new File(path, fi.getName()));
        // append myfile.zip to "path", making it C:\TOMCAT\webapps\MyWebApps\files\myfile.zipIE, however, tells "here comes the file C:\WINDOWS\Desktop\myfile.zip". Now imagine what the path+filename ends up being...
    So what you want to do is something along the lines of (assuming Windoze):
    public static String basename(String filename)
        int slash = filename.lastIndexOf("\\");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        // I think Windows doesn't like /'s either
        int slash = filename.lastIndexOf("/");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        // In case the name is C:foo.txt
        int slash = filename.lastIndexOf(":");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        return filename;
        fi.write(new File(path, basename(fi.getName()));
        ....You can make the file name check more bomb proof if security is an issue. Long file names trying to overflow something in the OS, NUL characters, Unicode, forbidden names in Windos (con, nul, ...), missing file name, ...

  • How to set Mime Type for Static Files

    Hi All,
    I am working on Apex 3.2.1.00.10.
    When I am trying to upload (create) a ".js" file into Static Files under Shared Components of an application; it is saving as "*text/plain*" for Mime Type. But I need Mime type to be set as "*application/x-javascript*".
    Please help me to change the Mime type of .js file.
    Or is there any way to upload the file directly as "*application/x-javascript*" as its Mime Type.
    Thanks in advance.
    Umesh

    In IIS v4 which comes with the Windows NT4 option pack, you right click the web page you are working with, select properties, then go to the HTTP Headers tab. At the bottom there's a button labelled File Types in the MIME Map section.
    After you've clicked that, you can add the two mime types you need;
    Associated Extension MIME Type
    .jar application/x-java-jar-file
    .jnlp application/x-java-jnlp-file
    I'm assuming that it is the same in W2k/IIS5.

  • 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

  • Not able to access files from Workspace Images and Static files

    Hi,
    We have just migrated our APEX Application from one server to another.
    All the functionality is working fine except the images or files which we are uploading
    in
    Shared Components -> Static Files
    Shared Components -> Images
    We are uloading Images in Shared Components -> Images but those are not getting displayed there.
    Similarly the files which we are uploaded in Shared Components -> Static Files are not accessible. If we
    try to download using download icon its showing blank screen.
    I am using some javascript files which i have uploaded into static files, but not able to refer them in page.
    Please someone guide us how to resolve the above problem.
    Thanks in advance.
    Thanks & Regards
    Sanjay
    Edited by: user11204334 on May 25, 2010 1:35 AM
    Edited by: user11204334 on May 25, 2010 3:45 AM

    Hello Sanjay,
    If you upload any static files such as IMAGES, FILES, or CSS you have to use the tags: #WORKSPACE_IMAGES# or #IMAGE_PREFIX# depending on your files location..
    then try something like htp.p ('<img src="#IMAGE_PREFIX#fileName.gif" />');
    And it should show the fileName.gif on your browser...
    I am not sure if i remember correctly, you can reference files to a specific application or to the whole application, if I am not mistaken..Correct me..
    Regards,
    Noel Alex Makumuli,
    Tanzania

  • File upload through BlazeDS remote object?

    Hi,
    After researching file upload options in flex, it seems like the only option is through HTTP service requests, such as:
    private var fileRef:FileReference;
    fileRef.upload(new URLRequest(FILE_UPLOAD_URL));
    Is there any way to use BlazeDS remote objects to upload a file from Flex interface? Perhaps passing in a FileReference object and marshalling it into an equivalent Java object?
    Thanks!

    I know there is a workaround like this. It uses a servlet to upload a file and returns a url. The uploaded file is either stored in session or server file system until the session expires. Use the PropertyProxy to register a custom class which contains this url and convert to java.io.File. It is the limitation of the player. It cannot read the local file system for security reason. There is a sample in blazeds/trunk/qa/apps/qa-regress/WEB-INF/src/blazeds/qa/remotingService/Echo.java
    static
    PropertyProxyRegistry registry = PropertyProxyRegistry.getRegistry();
    PropertyProxy proxy = registry.getProxy(java.io.File.class);
    if (proxy == null)
    registry.register(java.io.File.class, new FileProxy());
    proxy = registry.getProxy(FileReference.class);
    if (proxy == null)
    registry.register(FileReference.class, new FileReferenceProxy());
    Hope it can help

  • File upload is not working

    Hi
    The file upload (any kind static/image etc) is not working.
    It is giving error "No Data found". This happens only on certain PCs, on other PCs, it works fine.
    Have any one experience such issue ? I am not sure how to trouble shoot this, as there are no errors in Apache logs and no record created in wwv_flow_file_objects$.
    TIA
    DineshS

    How does your PL/SQL for the saving of uploaded files looks like? Where does this error happen? Does your process have an error message?
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

Maybe you are looking for

  • Audition CS6 will 'quit unexpectedly' when i import something...

    Everytime I open audition, ready to create something, ill try and import an .mp3 and it will quit of it's own accord. I have the report, but it means nothing to me, if anyone could tell me why it's crashing i'd be much appreciated i am using a macboo

  • Player window- Help

    Hey! I really need your help with this! I have to make an .exe file from a .swf file. That's easy. My problem is when i want to make the executable open without the borders of the projector ( those wit File, View, Help and so on). Plus, i want it to

  • Found another Belle calendar bug (Nokia, when is B...

    I know, Nokia does not react here but writing to Dutch Nokia Care is no use: either no answer or a standard answer like "Your C6-01 is a high quality business phone with advanced features ... blah blah blah". But okay, found another bug in the Belle

  • Open mail and every email downloads

    every time i open mail on my desktop, every email in my entire system pops ups in a window. it just started doing this one day, random.

  • Seeking: Drop Down Menu Tutorial for DreamWeaver CC (Pure CSS)

    Hey all. I'm relatively new to Dreamweaver, and web design in general.  I took on a project to create a small-business website for my buddy. I'll start by saying that I've googled, and have found several copy / paste solutions, as well as several plu