Loading ...
Sorry, an error occurred while loading the content.

Re: [json] Sending an image using JSON

Expand Messages
  • Dennis Gearon
    I personally set my API up using out of band uploading. Direct POSTing of the image (multipart encoding), and then put the url of the image resource in the
    Message 1 of 11 , Mar 8 7:49 PM
    • 0 Attachment
      I personally set my API up using 'out of band' uploading. Direct POSTing of the image (multipart encoding), and then put the url of the image resource in the JSON for the next part of the request.

      It requires the Mobile device, to do some things in the background, or on a browser, use XMLHttpRequest, or multiple pages to do the full transaction.

      One of the advantages is that you can use Amazon or other cloud servers as yoru storage . . . or the local hard drive. All you have to do is change the prefix upto the directory/filename of the URL in the JSON, (assuming you keep all filenames the same, just change their location)

      Dennis Gearon



      Signature Warning

      ----------------

      EARTH has a Right To Life,

      otherwise we all die.



      Read 'Hot, Flat, and Crowded'

      Laugh at http://www.yert.com/film.php

      --- On Mon, 3/8/10, Jacob Davies <jacob@...> wrote:

      From: Jacob Davies <jacob@...>
      Subject: Re: [json] Sending an image using JSON
      To: json@yahoogroups.com
      Date: Monday, March 8, 2010, 6:48 PM







       









      It's going to depend on the API, though I assume that most sites are

      going to want you to send the data via the multipart/form- data

      encoding that is used for browser file uploads, and if they require

      JSON in the request, probably want you store the entire JSON string in

      another form field in the same request.



      Alternatively as someone suggested they may want you to POST the

      binary data directly.



      Base-64 encoding binary data and storing it in a JSON string works

      fine of course (couldn't really not work!) but introduces a

      significant encoding overhead that makes it unsuitable for large

      network file transfers, so I doubt that's what they're doing.



      But only their documentation can tell you what they're actually expecting.



      On Mon, Mar 8, 2010 at 10:37 AM, farkmischer <farkmischer@ yahoo.com> wrote:

      > I am trying to figure out how to send an image from my hard drive to Tuzulo using their api which appears to use JSON (quoted below).  I have figured out how to receive information about what images I have with them and their URLs but cannot figure out how to send an image.  I have found lots of JSON examples but they all seem to show sending or receiving strings.  Could someone give me a hint?

      >

      > Quoted From:

      > http://www.tuzulo com/info/ api

      >

      > Quote

      > Private API URLsThese URLs require private keys, used for management and extension. To protect each upload, the private key must be known (saved, bookmarked, etc.). With an account, this becomes transparent.

      >

      > http://www.tuzulo com/add/<private-key>

      >

      > Extend collection.

      >

      > http://www.tuzulo com/upload/<private-key>

      >

      > Manage collection.

      >

      > Public keys are meant to be shared while private keys are meant to be temporarily bookmarked if necessary. Bookmarking is unnecessary when you're a site member.

      > End Quote

      >

      >

      >

      > ------------ --------- --------- ------

      >

      > Yahoo! Groups Links

      >

      >

      >

      >



      --

      jacob@...




















      [Non-text portions of this message have been removed]
    • Tatu Saloranta
      ... This really depends on implementation: at least fast java encoders can do with about same overhead as space expansion causes (33%). While higher relative
      Message 2 of 11 , Mar 8 11:04 PM
      • 0 Attachment
        On Mon, Mar 8, 2010 at 6:48 PM, Jacob Davies <jacob@...> wrote:
        > It's going to depend on the API, though I assume that most sites are
        > going to want you to send the data via the multipart/form-data
        > encoding that is used for browser file uploads, and if they require
        > JSON in the request, probably want you store the entire JSON string in
        > another form field in the same request.
        >
        > Alternatively as someone suggested they may want you to POST the
        > binary data directly.
        >
        > Base-64 encoding binary data and storing it in a JSON string works
        > fine of course (couldn't really not work!) but introduces a
        > significant encoding overhead that makes it unsuitable for large
        > network file transfers, so I doubt that's what they're doing.

        This really depends on implementation: at least fast java encoders can
        do with about same overhead as space expansion causes (33%). While
        higher relative overhead, it is not necessarily very significant for
        many use cases, esp. if cpu is not the bottleneck. There is not
        necessarily need to store intermediate encoded result in its entirety
        either (and especially not as String); although some implementations
        do that for simplicity.

        Basically, this is one of those cases where not-so-good can be just
        good enough, even for quite sizable binary data. Why do it that way?
        It may be simplest way to do it, being able to bundle data, metadata,
        multiple images all in a single message.

        -+ Tatu +-
      • Jorge Chamorro
        ... The browser can upload a local file to a server via a form through a POST, but your page s javascript code can t touch nor read a local file at all, at
        Message 3 of 11 , Mar 9 2:20 AM
        • 0 Attachment
          On 08/03/2010, at 19:37, farkmischer wrote:
          > I am trying to figure out how to send an image from my hard drive to Tuzulo using their api which appears to use JSON (quoted below). I have figured out how to receive information about what images I have with them and their URLs but cannot figure out how to send an image. I have found lots of JSON examples but they all seem to show sending or receiving strings. Could someone give me a hint?
          >
          > Quoted From:
          > http://www.tuzulo.com/info/api
          >
          > Quote
          > Private API URLsThese URLs require private keys, used for management and extension. To protect each upload, the private key must be known (saved, bookmarked, etc.). With an account, this becomes transparent.
          >
          > http://www.tuzulo.com/add/<private-key>
          >
          > Extend collection.
          >
          > http://www.tuzulo.com/upload/<private-key>
          >
          > Manage collection.
          >
          > Public keys are meant to be shared while private keys are meant to be temporarily bookmarked if necessary. Bookmarking is unnecessary when you're a site member.
          > End Quote
          >

          The browser can upload a local file to a server via a form through a POST, but your page's javascript code can't touch nor read a local file at all, at least not if the location.href is anything other than file:/// (e.g., not in a page that's coming from http://tuzulo.com).
          --
          Jorge.

          [Non-text portions of this message have been removed]
        • farkmischer
          In response to a couple of quesitons I am using ASP.Net to do this so I do have access to the filesystem. Over the last few days I have determined in .net how
          Message 4 of 11 , Mar 9 9:06 PM
          • 0 Attachment
            In response to a couple of quesitons I am using ASP.Net to do this so I do have access to the filesystem. Over the last few days I have determined in .net how to format in image in Base64 and send the string to a URL (see below). However this still does not work. I get a "The remote server returned an error: (403) Forbidden." error. I believe that I am not formating what I am sending to tuzulo properly but am not sure what the string should look like. I also tried uploading the image directly without encoding it in Base64 like this client.UploadFile("http://tuzulo.com/add/***private key***", imgPhoto) but that did not work either. I'm not sure how to find out how to format my send, there does not seem to be a lot of information out there on this.

            CODE:
            System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile("c:\\test.jpg");
            string ImageBase64 = ImageToBase64(imgPhoto, System.Drawing.Imaging.ImageFormat.Jpeg);

            using (WebClient client = new WebClient())
            {
            return client.UploadString("http://tuzulo.com/add/***private key***", ImageBase64);
            }
            CODE:

            --- In json@yahoogroups.com, "farkmischer" <farkmischer@...> wrote:
            >
            > I am trying to figure out how to send an image from my hard drive to Tuzulo using their api which appears to use JSON (quoted below). I have figured out how to receive information about what images I have with them and their URLs but cannot figure out how to send an image. I have found lots of JSON examples but they all seem to show sending or receiving strings. Could someone give me a hint?
            >
            > Quoted From:
            > http://www.tuzulo.com/info/api
            >
            > Quote
            > Private API URLsThese URLs require private keys, used for management and extension. To protect each upload, the private key must be known (saved, bookmarked, etc.). With an account, this becomes transparent.
            >
            > http://www.tuzulo.com/add/<private-key>
            >
            > Extend collection.
            >
            > http://www.tuzulo.com/upload/<private-key>
            >
            > Manage collection.
            >
            > Public keys are meant to be shared while private keys are meant to be temporarily bookmarked if necessary. Bookmarking is unnecessary when you're a site member.
            > End Quote
            >
          • Josh Sled
            ... You should ask tuzulo.com about how to use their API. This isn t a tuzulo.com support forum, and your question is only tangentially related to json. --
            Message 5 of 11 , Mar 10 6:23 AM
            • 0 Attachment
              "farkmischer" <farkmischer@...> writes:

              > client.UploadFile("http://tuzulo.com/add/***private key***", imgPhoto) but that did not work either. I'm not sure how
              > to find out how to format my send, there does not seem to be a lot of information out there on this.

              You should ask tuzulo.com about how to use their API. This isn't a
              tuzulo.com support forum, and your question is only tangentially related
              to json.

              --
              ...jsled
              http://asynchronous.org/ - a=jsled; b=asynchronous.org; echo ${a}@${b}
            • farkmischer
              I apologize, you are right. I started out not even knowing how to use JSON so that is why I started here. Now that I figured out how to use JSON in .net I
              Message 6 of 11 , Mar 10 6:51 AM
              • 0 Attachment
                I apologize, you are right. I started out not even knowing how to use JSON so that is why I started here. Now that I figured out how to use JSON in .net I will contact tuzulo. They have a support forum that doesn't let you post to so I'll have to figure out how to contact them.

                --- In json@yahoogroups.com, Josh Sled <jsled@...> wrote:
                >
                > "farkmischer" <farkmischer@...> writes:
                >
                > > client.UploadFile("http://tuzulo.com/add/***private key***", imgPhoto) but that did not work either. I'm not sure how
                > > to find out how to format my send, there does not seem to be a lot of information out there on this.
                >
                > You should ask tuzulo.com about how to use their API. This isn't a
                > tuzulo.com support forum, and your question is only tangentially related
                > to json.
                >
                > --
                > ...jsled
                > http://asynchronous.org/ - a=jsled; b=asynchronous.org; echo ${a}@${b}
                >
              Your message has been successfully submitted and would be delivered to recipients shortly.