Downloading a binary file using sockets without length known

Hi all,
I'm trying to download a binary(.exe) file using socket, where the length of the file is not known. Please take a look at the code I'm using:
      var readBin = socketBin.read();
     <-- Here comes the code that checks for http Content-length header field
     ; If content-length field is available, then I'll use it to download file, else proceed with following code -->
    pBar.reset("Downloading plugin..",null);pBar.hit(readBin.length);       
            while (1)
                binFil.write(readBin);     //'binFil' is the file, into which downloaded file is written.
                readBin = socketBin.read();
                pBar.hit(readBin.length);
                if( socketBin.eof || readBin.length<=0){
                    break;}          
            binFil.write(readBin);
            binFil.close();
            socketBin.close();
Problem is: I'm able to download file within 10 seconds when content-length is known. But when content-length is not known, its taking about 1 and half minute to download, also the progress bar gets struck for much of time.
FYI: socket is opened in binary mode, file is getting downloaded correctly(even though it takes abt a minute). BTW Im using CS5.5 extendscript
I'm not able to figure out where the bug is.

Hi, Srikanth:
Sevaral points.
#1 When posting code, please use the web interface and the >> icon and choose Syntax Highlighting >> Java. Otherwise your code is just too hard to read and gets misformatted.
#2 Apropos of #1, your script as written does not work, because this line:
url=url.replace(/([a-z]*):\/\/([-\._a-z0-9A-Z]*)(:[0-9]*)?\/?(.*)/,"$ 1/$2/$3/$4");
has an extra space in the $1 and should be this:
url=url.replace(/([a-z]*):\/\/([-\._a-z0-9A-Z]*)(:[0-9]*)?\/?(.*)/,"$1/$2/$3/$4");
Please take an extra moment to make sure that when you asking for help, you do so in a way that makes sense. Otherwise it takes too much effort to help you, and that is frustrating.
#3 If we instrument your script by adding a line to the while() loop:
            while (1)
                binFil.write(readBin);
                readBin = socketBin.read();
                $.writeln(Date()+" Read "+readBin.length+" chars, eof is "+socketBin.eof);
                if(  readBin.length<=0){         break;}              
We get output like this:
Mon Jul 11 2011 12:06:56 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:06:56 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:06:56 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:06:56 GMT-0400 Read 631 chars, eof is false
Mon Jul 11 2011 12:07:06 GMT-0400 Read 0 chars, eof is false
Result: undefined
Therefore, we can reasonably conclude that the last read at the end of the data stream returns a short read when the other side blocks.
Unfortunately, that's clearly insufficient since you can get short reads all the time.
I'm not sure why you say the length of the file is not known, HTTP provides it to you in the Content-Length field of the response.
But the easy answer is to get the server to close it for you. This is easy, enough, with Connection: close. Why were you specifying
Connection: keep-alive, anyhow?:
            var requestBin =
            "GET /" + parsedURLBin.path + " HTTP/1.1\n" +
            "Host: " + parsedURLBin.address + "\n" +
            "User-Agent: InDesign ExtendScript\n" +
            "Accept: */*\n" +
            //"Connection: keep-alive\n\n";
            "Connection: close\n"+
            "\n";
This yields a nice tidy:
Mon Jul 11 2011 12:26:19 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:26:19 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:26:19 GMT-0400 Read 1024 chars, eof is false
Mon Jul 11 2011 12:26:19 GMT-0400 Read 735 chars, eof is true
Mon Jul 11 2011 12:26:19 GMT-0400 Read 0 chars, eof is true
I suspect you're also better off using something like socketBin.read(64*1024) for a 64k buffer size, but it doesn't seem to effect the on-the-wire protocol, so perhaps its not so important.
If you don't want to reply on the server

Similar Messages

  • Using utl_http to download a binary file to the server disk

    Hi,
    I need to download a binary file from the web into the hard disk of the server.
    I am using utl_http to do that. My program works on URLs that have text, but not on binary files. Does anyone have an idea how to do that?
    Thanks
    Rani
    Here is the program I am using:
    DECLARE
    req utl_http.req;
    resp utl_http.resp;
    value VARCHAR2(32767);
    fname utl_file.file_type;
    BEGIN
    utl_http.set_proxy('wwwproxy.myorg.com:8080');
    req := utl_http.begin_request('http://www.somelocation.com/abc.zip');
    resp := utl_http.get_response(req);
    fname := utl_file.fopen('DBTEMP','testfile.zip','w');
    LOOP
    utl_http.read_line(resp, value, TRUE);
    utl_file.put_line(fname,value);
    END LOOP;
    utl_http.end_response(resp);
    utl_file.fclose(fname);
    EXCEPTION
    WHEN utl_http.end_of_body THEN
    utl_http.end_response(resp);
    utl_file.fclose(fname);
    END;

    Try to use UTL_HTTP.READ_RAW.

  • How to download a text file using classes

    Hi Guys
    I want to download a text file using classes.
    Any idea how to do it ?
    Thanks
    Sameer

    HI sameer,
       It is no different from using a Function module.
    example:
      CALL METHOD cl_gui_frontend_services=>gui_download
        EXPORTING
          filename                  = w_fpath
        append                    = SPACE
          write_field_separator     = 'X'
        CHANGING
          data_tab                  = it_download
        EXCEPTIONS
          file_write_error          = 1
          no_batch                  = 2
          gui_refuse_filetransfer   = 3
          invalid_type              = 4
          no_authority              = 5
          unknown_error             = 6
          header_not_allowed        = 7
          separator_not_allowed     = 8
          filesize_not_allowed      = 9
          header_too_long           = 10
          dp_error_create           = 11
          dp_error_send             = 12
          dp_error_write            = 13
          unknown_dp_error          = 14
          access_denied             = 15
          dp_out_of_memory          = 16
          disk_full                 = 17
          dp_timeout                = 18
          file_not_found            = 19
          dataprovider_exception    = 20
          control_flush_error       = 21
          not_supported_by_gui      = 22
          error_no_gui              = 23
          OTHERS                    = 24
    Regards,
    ravi

  • Why can't I download a pdf file using internet explorer as my browser.I can download pdfs using fire

    Why can't I download a pdf file using internet explorer as my browser. I can download pdfs using firefox.

    Gilad D,
    Thanks for the support.
    I would guess the plugin is enabled since when I use Foxfire as my browser, all pdfs download and are readable. (just doesn’t happen when I use IE as my browser, I get a blank screen with a small “x” in the upper left corner)
    I will try your proposed solution.
    Charlie

  • Send a picture file using sockets

    Hi,
    Could someone please tell me how I can send a picture file using sockets across a TCP/IP network? I have managed to do it by converting the file into a byte array and then sending it but I dont see the data back at the client when I recieve the file. I just see the byte array as having size 0 at client.
    Byte array size is correct at client side.
    //client code
    System.out.println("Authenticating client");
              localServer = InetAddress.getLocalHost();
              AuthConnection = new Socket(localServer,8189);
              out = new PrintWriter(AuthConnection.getOutputStream());
              InputStream is = AuthConnection.getInputStream();
              System.out.println(is.available());
              byte[] store = new byte[is.available()];
              is.read(store);
         ImageIcon image = new ImageIcon(store);
              JLabel background = new JLabel(image);
              background.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
              getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
    //extra code here
              catch (UnknownHostException e) {
    System.err.println("Don't know about host: LocalHost");
    System.exit(1);
              catch (IOException e) {
    System.err.println("Couldn't get I/O for "
    + "the connection to: LocalHost");
    System.exit(1);
    //server code
                   DataOutputStream out = new DataOutputStream(incoming.getOutputStream());
                   FileInputStream fin = new FileInputStream("3trees.gif");
                   byte[] b = new byte[fin.available()];
                   int ret = fin.read(b);
                   out.write(b);

    i used OutputStream as
    OutputStream out = incoming.getOutputStream(); and flushed the stream too.
    But I still get the same output on the client side. I tried sending a string and it works , but I cant seem to be able to populate the byte array on the client side. It keeps showing zero. Please advise.
    Thank you.

  • Oracle BAM to monitor transfer of files using sockets

    Hi,
    We have two programs transferring files using sockets. We wanted BAM to monitor the transfer.
    Would you please suggest if this is achievable in BAM , and if so , any pointers to how we may go about implementing it .
    Cheers,
    Anant.

    You could generate success/failure/progress from your utility to JMS or call BAM webservices to populate BAM Data Objects. Reports could be built on top of that.

  • Moving Files using sockets

    I wanted to know of a good way to move, not copy, files using sockets? Any help would be great.
    Thanks

    Even on the same machine, you can only move a file on the same filesystem. i.e. the file appears in a different directory rather than copying the file.
    If you have an C: and D: drive for example it will copy and delete the file on a move.
    Unix allows you to have symbolic links which can make a file/directory from anywhere appear anywhere on your filesystem. It does not copy or actaully move the file, it just appears to be where ever you choose.

  • Sending file using sockets (difficult)

    Hi, i have the following section of code
    (of which i am not claiming ownership) which
    implements a DCC Send command from irc.
    It accomplishes this using sockets, and while
    i understand how the code accomplishes what it
    does, i need help with a possible modification.
    Basically what i am looking to do is keep track
    of the progress of the send - so that the
    user can at any time see how much of the file
    has been sent and how much is remaining.
    If anyone has done such a thing in the past or
    has a good idea as to how this should be implemented,
    i would be greatful for their help.
    Here is the code:
    new Thread() {
                public void run() {
                    try {
                        ServerSocket ss = new ServerSocket(0);
                        ss.setSoTimeout(timeout);
                        int port = ss.getLocalPort();
                        //byte[] ip = ss.getInetAddress().getAddress();
                        byte[] ip = InetAddress.getLocalHost().getAddress();
                        long ipNum = 0;
                        long multiplier = 1;
                        for (int i = 3; i >= 0; i--) {
                            int byteVal = (ip[i] + 256) % 256;
                            ipNum += byteVal*multiplier;
                            multiplier *= 256;
                        // Rename the filename so it has no whitespace in it when we send it.
                        // .... I really should do this a bit more nicely at some point ....
                        String safeFilename = file.getName().replace(' ', '_');
                        safeFilename = safeFilename.replace('\t', '_');
                        // Send the message to the user, telling them where to connect to in order to get the file.
                        sendCTCPCommand(nick, "DCC SEND " + safeFilename + " " + ipNum + " " + port + " " + file.length());
                        // The client may now connect to us and download the file.
                        Socket socket = ss.accept();
                        socket.setSoTimeout(30000);
                        // Might as well close the server socket now; it's finished with.
                        ss.close();
                        BufferedOutputStream output = new BufferedOutputStream(socket.getOutputStream());
                        BufferedInputStream input = new BufferedInputStream(socket.getInputStream());
                        BufferedInputStream finput = new BufferedInputStream(new FileInputStream(file));
                        byte[] outBuffer = new byte[bufferSize];
                        byte[] inBuffer = new byte[4];
                        int bytesRead = 0;
                        while ((bytesRead = finput.read(outBuffer, 0, outBuffer.length)) != -1) {
                            output.write(outBuffer, 0, bytesRead);
                            output.flush();
                            input.read(inBuffer, 0, inBuffer.length);
                        output.close();
                        input.close();
                        log("+++ DCC SEND Completed to " + nick + " (" + file.getPath() + ")");
                    }

    You already have the necessary code to find the number of bytes sent at any point during the transmission. You can find out the size of the file by instantiating a RandomAccessFile before you send it, and querying for the file length.
    I suggest you make the file size and bytes sent volatile and conveniently accessible to another thread (best implemented here as an inner class?). Your new thread will need to monitor the file transfer at intervals to update the progress indicator. You can generate estimates of time remaining by measuring the average transmission rate, and extrapolating using the total file size. Classically this is done using an average, but you might be better just maintaining a list of fairly recent samples, allowing for the speed swings inherent in internet connections.
    How you update the progress indicator from your monitor thread is up to you. I suggest exposing methods in the UI for setting the progress and time remaining, and simply update them from the monitor.
    Does this help any?

  • Reading / Writing files using Sockets

    Hi there guys,
    I am fairly new to this forum. I have been having a problem for the past three days. I am implementing a client/server implementation using Sockets which is a submodule of a project I am working on. What I want is that a files content are read and transferred over the network to the server that writes it down to a different file .
    What the code presently does is :
    <<<<Client Code >>>>
    It reads a file input.txt and sends the content over the network to the server.
    <<<< Server Code >>>
    It reads the incoming data from the client and writes the data out to a file called output.txt
    What I want now is that the server should read the file output.txt and send the contents to the client which reads it and then writes it down as a new file called serverouput.txt . After that I want to compare and see of the size of input.txt and serveroutput.txt . If both are same that means that data has been written reliably to the server.
    I have been trying to implement it for a long time and nothing seems to work out. I am posting the code for both client and server below. Any help in finalising things would be really appreciated.
    CLIENT CODE
    import java.awt.Color;
    import java.awt.BorderLayout;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Date;
    import java.io.*;
    import java.net.*;
    class sc {
    static final int PORT = 4444;          //Change this to the relevant port
    static final String HOST = "127.0.0.1";
         //Change this to the relevant HOST,
    //(where Server.java is running)
    public static void main(String args[]) {
    try {
    System.out.print("Sending data...\n");
    Socket skt = new Socket(HOST, PORT);
                   // Set the socket option just in case server stalls
    skt.setSoTimeout ( 2000 );
                   skt.setSoKeepAlive(true);
    //Create a file input stream and a buffered input stream.
    FileInputStream fis = new FileInputStream("input.txt");
    BufferedInputStream in = new BufferedInputStream(fis);
    BufferedOutputStream out = new BufferedOutputStream( skt.getOutputStream() );
    //Read, and write the file to the socket
    int i;
    while ((i = in.read()) != -1) {
    out.write(i);
    //System.out.println(i);
                   // Enable SO_KEEPALIVE
    out.flush();
    out.close();
    in.close();
    skt.close();
    catch( Exception e ) {
    System.out.print("Error! It didn't work! " + e + "\n");
              catch( IOException e ) {
    System.out.print("Error! It didn't work! " + e + "\n");
    SERVER CODE
    import java.awt.Color;
    import java.awt.BorderLayout;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Date;
    import java.io.*;
    import java.net.*;
    class ClientWorker implements Runnable {
    private Socket client;
    ClientWorker(Socket client) {
    this.client = client;
    public void run(){
    try      {
    FileOutputStream fos = new FileOutputStream("output.txt");
    BufferedOutputStream out = new BufferedOutputStream(fos);
    BufferedInputStream in = new BufferedInputStream( client.getInputStream() );
    //Read, and write the file to the socket
    int i;
    while ((i = in.read()) != -1) {
    out.write(i);
    //System.out.println(i);
    System.out.println("Receiving data...");
    out.flush();
    in.close();
    out.close();
    client.close();
    // srvr.close();
    System.out.println("Transfer complete.");
    catch(Exception e) {
    System.out.print("Error! It didn't work! " + e + "\n");
    class ss1 {
    ServerSocket server = null;
    ss1(){ //Begin Constructor
    } //End Constructor
    public void listenSocket(){
    try{
    server = new ServerSocket(4444);
    } catch (IOException e) {
    System.out.println("Could not listen on port 4444");
    System.exit(-1);
    while(true){
    ClientWorker w;
    try{
    w = new ClientWorker(server.accept());
    Thread t = new Thread(w);
    t.start();
    } catch (IOException e) {
    System.out.println("Accept failed: 4444");
    System.exit(-1);
    protected void finalize(){
    //Objects created in run method are finalized when
    //program terminates and thread exits
    try{
    server.close();
    } catch (IOException e) {
    System.out.println("Could not close socket");
    System.exit(-1);
    public static void main(String[] args){
    ss1 frame = new ss1();
         frame.listenSocket();
    }

    ............................................. After that I want to
    compare and see of the size of input.txt and
    serveroutput.txt . If both are same that means that
    data has been written reliably to the server.You don't need to do this. TCP/IP ensures the reliable transmition of data. By using a socket you are automaticaly sure that the data is reliably transmitted (Unless there is some sort of exception).
    To get the size of the files you can use a File object. Look it up in java.io package in API documentation.
    java-code-snippet (without error checking)
    File clientFile = new File("input.txt");
    clientFile.length();

  • Firefox crashed when I try to download a binary file

    In this instance it is IE8 which I am trying to download (for business purposes I need Activex controls). When I currently open IE it runs as a process rather than an application. I have tried to download IE8 and google's Chrome but Firefox crashes as soon as I try to save the Binary files.

    Sorry you are having problems. Can you give an example preferably of some small publicly available file and the site you are trying to download it from ?
    As a simple example of a download (ok it is a .png image file not not a .exe file) but can you try to download a copy of your avtar/icon, as used on these forums. In Windows one method is that you right click & should get an option save. <br/> Mine alongside uses the link
    * https://support.mozilla.com/media/uploads/avatars/avatar-257447.png
    Are you able to download such an image, then see it in your download manager, and find it on your computer.
    Once you have got Firefox to save your binary file you can use it. In the case of the .exe file you are trying to download that should be usable as intended with your Windows Operating System, the avatar also should be easily opened and viewed.
    P.S.
    You could try installing the add-on https://addons.mozilla.org/en-US/firefox/addon/opendownload-10902/ if you wished to adapt Firefox to run .exe files instead of just save them.

  • Send binary file using xml

    Hi all,
    I've got an application wich currently sends xml messages through sockets between server and client. Now, I'd like to be able of sending binary files (jpegs and other images...) as some content of these files. Is it possible with CDATA? Do you know any URL with an example or something?
    thanks a lot!

    This is a little example that shows the solution I adopted.
    Two classes, a server and a client, execute the server in a given port and the client with "localhost" as ip and the same port as the server.
    Ex: java Server 5555
    java Client localhost 5555
    the code:
    import java.net.*;
    import java.io.*;
    public class Server {
        public static void main(String[] args) {
            ServerSocket serverSocket = null;
            if(args.length!=1){
                System.out.println("ERROR: java Server <port>");
            } else {
                   // Create listening socket
                   try {
                        serverSocket = new ServerSocket((new Integer(args[0])).intValue());
                   } catch (IOException e) {
                        System.out.println("ERROR: not possible to listen on the specified port");
                        System.exit(1);
                   // Create wait for connection
                   Socket clientSocket = null;
                   try {
                        clientSocket = serverSocket.accept();
                   } catch (IOException e) {
                        System.err.println("ERROR: Accept failed.");
                        System.exit(1);
                   try{
                          // Get the output channel
                        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
                        // Send a xml message
                        out.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?><FOO><VAR message=\"ugly harcoded XMLmessage\"/></FOO>\0");
                        out.flush();
                        out.close();
                        clientSocket.close();
                        serverSocket.close();
                   } catch(IOException IOE){
                        System.out.println("ERROR: on send");
    import java.io.*;
    import org.w3c.dom.Document;
    import java.net.*;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.xml.sax.SAXException;
    import org.xml.sax.InputSource;
    public class Client {
         public static void handleIncomingMessage(Document doc){
            System.out.println("DO WHAT YOU WANT WITH THE XML!");
        public static void main(String[] args){
            BufferedReader in = null;
            Socket socket = null;
            if(args.length!=2){
                System.out.println("ERROR: java Client <ip> <port>");
            } else {
                String ip = args[0];
                int port = (new Integer(args[1])).intValue();
                   // Open a socket to the server
                try {
                        socket = new Socket(ip,port);
                   } catch (UnknownHostException e) {
                        System.out.println("ERROR: Unknow host!");
                        System.exit(1);
                   } catch (IOException e) {
                        System.out.println("ERROR: I/O error");
                        System.exit(1);
              try {
                // Get the input channel
                   in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            } catch (IOException e) {
                System.err.println("ERROR: I/O error");
                System.exit(1);
              // Create a DocumentBuilder to convert the socket's incoming String
            // to a XML parsed Document
              Document XMLmessage =null;
            DocumentBuilder builder = null;
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              try{
                   builder = factory.newDocumentBuilder();
            } catch (ParserConfigurationException PCE) {
                System.out.println(PCE.toString());
              try{
                String messageRead = "";
                char caracter;
                StringBuffer sb = null;
                   // Read from the socket until \0
                   sb = new StringBuffer();
                   caracter =(char)in.read();
                   while(caracter != '\0'){
                        sb.append(caracter);
                        caracter = (char)in.read();
                   messageRead = sb.toString();
                   System.out.println("Recieved: "+messageRead);
                // Parse the read message
                   try{
                        XMLmessage = builder.parse(new InputSource((Reader)new StringReader(messageRead)));
                        // Work with it
                        handleIncomingMessage(XMLmessage);
                   } catch(IOException IOE){
                        System.out.println(IOE.toString());
                   } catch(SAXException SE) {
                        System.out.println(SE.toString());
              } catch(IOException IOE){
                   System.out.println("ERROR: I/O error");
    }hope it helps!
    any comment about the code will be welcome

  • How to input notes in a binary file used to save continuous DAQ?

    Hello,
    I have a continuous data acquisition vi with trigger. Data is saved in a binary file. I would like to save some comments or notes in this file; I want to be able to read the notes afterwards and the saved data that has to be displayed in charts. I got some examples from NI but they are simple and do not include the continuous data acquisition and reading both the notes and the (dynamic) data.
    Does anyone have examples of binary files with notes and continuous DAQ write and read?
    I've been working on this issue for quite a while and I got stuck...
    Thanks...

    Thank you Emilie.
    I know these examples all right. Now try embedding this into a 'Cont Acq. and Chart - Int. Clk.vi' or any vi that does data acquisition and saves the data in the same file where you wrote the string of comments. And this is not all - how do you read them all back in the right order and right length...
    I have inserted some examples to make you understand better what I am talking about.
    'AcquirePFV_Header.vi' and 'Read_with Header.vi' are only some trials that do not really work correctly.
    Could you or anybody else help me solve this problem?
    Thank you.
    Radu
    Attachments:
    ForNI03.zip ‏1170 KB

  • Sending a pdf file using submit without client email program.

    I need a solution on sending a completed pdf file to my email address without the clients email program poping up.  My website has a small pdf file that users can complete and return to me.  I get many complaints from users stating it requires them to save the file first and then they are unsure were it saved or how to attach it to a email.  To make this easer on my users I want the submit button to simply send me the file using some method from my website.  I use iPage to host the site now.  I was looking for a script to call or some way to do this automaticly.  I was woundering if urs/sbin/sendmail might work.  I am simply at a loss on this.

    Using a sendmail type script will send you the form data in the body of an email message, if the form is set up to submit as "HTML". You can create your own script to attach the form data as an FDF, XFDF, or even the complete PDF, but it's unlikely your provider supplies a script for this, so you'd have some custom programming to do.
    Sending just the form data also avoids the licensing restrictions for Reader-enabled forms. You can easily import an FDF or XFDF into a blank form to create a filled-in form.

  • When I download a PDF file using Adobe I get a black screen when attempting to print and if I save the file I get a corrupted response when opening it.

    This does not always happen, for example if I get a PDF file by email, it appears to be primarilly when I download from the internet.
    I use Adobe Reader X1. Can you assist please. Thanks

    Thanks Eric, no it does not help the matter. I opened the file using preview and the same message appeared. Thanks.

  • HT4101 downloading only JPEG files using SD card reader

    I am new to Apple-iPad world,, mostly working on WinXP.
    I am looking to buy a tablet to view photos while I'm on vacation and traveling. I shoot both RAW and JPEG files of each image. When I connect my SD card to an iPad Mini, I'd like to be able to download only the JPEG files, since the RAW files are too large and would quickly fill up my device.
    I've been told that when you plug in the Apple SD card reader, it treats the RAW and JPEG files of an image as one, so when you download you have no choice to just select the JPEGs. Seems like a huge oversight on Apple's part, to offer camera and card connection, but then be so controlling about it, that it doesn't work for people. None of the 3-4 Apple sales reps I've spoken to know of a way around this.
    At this point, I'm lookng at an Android tablet instead, since it doesn't have this limiting feature--though I much prefer the look and size of the iPad Mini screen.  .
    Has anyone else run into this issue? Any thoughts on a work-around?
    (Two solutions that I've thought of--though I don't know if they will work--are: 1) download all of the images, then bring them up in a program like Snapseed, where I can save (really a 'save as') a new JPEG version of my image, then delete the original files that I downloaded, or 2) see if I can download a file manager app that would let me view the different files by size and by type (to identify the RAW files), then delete just these from me iPad)  
    Best, David.

    Thanks Tom, at last an answer!
    So it seems I would need to first download the image files to my tablet--including RAW files--(or whatever the constraits are in working with the Apple SD card reader), and then after the fact, use PMP to delete just the RAW files.
    I assume then that PMP can view the 'standard' photo folders (called 'Albums on my iPod) created by the Apple photo app (or by the iOS, I'm not sure), is that correct?
    This might be an acceptable work-around for me.
    Best, David.  

Maybe you are looking for

  • Hyperion 11.1.1.2 version compatibility with ODI 10.1.3.5.0

    Hi, Whether Hyperion EPM 11.1.1.2 version compatible with ODI 10.1.3.5.0 for Planning/HFM metadata loading and Essbase data loading? Thanks, Naveen Suram

  • Object in cache count and total heap size consumed.

    Hi Can you please help me to extract - total number of custom value objects (count) and its total heap space consumed. How do we extract this information (from jrcmd or jrockit command control - jrockit jvm). Do we need to use - com.tangosol.net.mana

  • Notes to mail

    How do i switch off sending my notes automaticaly to my mail adress?

  • Forwarding domain names and Google Ad sense

    OK, community: I have decided to finally create a site, using iWeb, and want to have th iWeb URL forwarded, if that is the correct word, to another URL that is easier to remember. I also wish to eventually use Google's ad program. I know these topics

  • Duplicating entry in 2 tables

    Hi, I am looking for some help on how to do the following: I use Number to track my finances. I have two tables - one for my checking account and the other one for my cash account. When I withdraw cash from my checking account I record a transfer or