Как скачивать изображения с других сайтов?
под "на клиенте" Вы подразумеваете браузер?
Вроде бы как политика безопасности браузеров на сегодняшний день не позволит даже сделать кроссдоменный запрос и получить изображения, без специального заголовка со стороны сервера который Вы собираетесь "ограбить". Если я не ошибаюсь.
Можно по след. схеме:
Клиент <- Ваш сайта -> Сайт "жертва".
Т.е:$.post('/getImages.php', {
     url: 'http://site.com/images/image.jpg'
}, function (data) {
    // Сохраняем изображения
    // Правда признаюсь - это извращение ;)
}, 'JSON');<?php
     $url = $_POST['url'];
     $filename = end('/', $url);
     $path = __DIR__ . '/images_cache/';

     file_put_contents($path . $filename, file_get_contents($url));

     json_encode([
          'image' => '/images_cache/' . $filename,
          'filename' => $filename
     ]);
По-моему вам нужен XMLHttpRequest + FileSystem APIvar fs = null;
window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(window.PERSISTENT, 2*1024*1024, function(f) {
    f = fs; 
    download(fs, "http://yourdomain.com/example.gif","example.gif",function(){/*success*/},function(){/*fail*/});
});

function download(fs,url,file,win,fail) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', url);
  xhr.responseType = "blob";
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
      if(xhr.status === 200){
        fs.root.getFile(file,{create:true},function(fileEntry){
          fileEntry.createWriter(function(writer){
            writer.onwriteend = win;
            writer.onerror = fail;
            writer.write(xhr.response);
          })
        },fail)
      } else {
        fail(xhr.status);
      }
    }
  };
  xhr.send();
  return xhr;
};