Guest User

Untitled

a guest
Mar 20th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  (function(){
  2.        
  3.         //client side verification, for image types. Where f = File object
  4.         function verifyImageType(f){
  5.             var isImage = false;
  6.            
  7.             if(f.type.match('image.*')){
  8.                 isImage = true;
  9.             }
  10.            
  11.             return isImage;
  12.         }
  13.         //constructor for sending info to the server
  14.         function ImageInformation(imageNumber, targetResult, mimeType){
  15.             this.imageNumber  = imageNumber;
  16.             this.targetResult = encodeURIComponent( targetResult.split(",")[1] );
  17.             this.mimeType     = mimeType;
  18.         }
  19.        
  20.         function constructXMLHTTPRequest( imageNumber, sendTargetResult, mimeType ){
  21.             var xmlHTTP  = new XMLHttpRequest();
  22.            
  23.             var sendData = new ImageInformation(imageNumber, sendTargetResult, mimeType);
  24.            
  25.             sendData = JSON.stringify(sendData);
  26.             sendTargetResult = "imageData="+sendData;
  27.            
  28.             xmlHTTP.onreadystatechange = function(){
  29.                 if( xmlHTTP.readyState == 4 && xmlHTTP.status == 200){
  30.                     var jsonResponse = JSON.parse(xmlHTTP.responseText);
  31.                    
  32.                     var actualNumber = jsonResponse.imageNumber-1;
  33.                    
  34.                     console.log("Image #" + jsonResponse.imageNumber + " Took " + jsonResponse.scriptTime + " to process.");
  35.                     console.time('profileGetElementByIdforImage'+actualNumber);
  36.                     document.getElementById("preview"+actualNumber).setAttribute("src", jsonResponse.fullPath);
  37.                     console.timeEnd('profileGetElementByIdforImage'+actualNumber);
  38.                 }
  39.                
  40.             };
  41.            
  42.             xmlHTTP.open("POST", "asyncGallery_PRELOAD.php", true);
  43.             xmlHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
  44.             xmlHTTP.send(sendTargetResult);
  45.            
  46.         }
  47.        
  48.        
  49.         function loadImageFiles(e){
  50.            
  51.             var selectFiles = e.target.files;
  52.            
  53.             for(var i = 0, j; j = selectFiles[i]; i++){
  54.                 //verify that file is image
  55.                 if(!(verifyImageType(j))){
  56.                     continue;
  57.                 }
  58.                
  59.                 var readFile = new FileReader();
  60.                 readFile.onload = (function(singleFile, imageNumber){
  61.                     return function(k){
  62.                         //send xmlhttprequest to server to process image.
  63.                         constructXMLHTTPRequest((imageNumber+1), k.target.result, singleFile.type);
  64.                     };
  65.                 })(j, i);  
  66.                    
  67.                 readFile.readAsDataURL(j);
  68.                
  69.                 var imagePreview = document.createElement('span');
  70.                 imagePreview.className = 'thumbnail';
  71.                 imagePreview.innerHTML = ['<img id="preview'+i+'" src="ajax-loader2.gif" />'];
  72.                 document.getElementById('imageForm').insertBefore(imagePreview, null);
  73.             }
  74.         }
  75.        
  76.         window.onload = function(){
  77.             document.getElementById('imageFiles').addEventListener('change', loadImageFiles, false);   
  78.         }
  79.     }());
Advertisement
Add Comment
Please, Sign In to add comment