2013-05-07 62 views
1

問題的解析如何獲得上傳的圖片:使用JavaScript API

我有上傳文件的URL(如http://files.parse.com/../../..jpg)和它的文件名,現在需要檢索該URL對應的文件(解析。通過使用僅通過Javascript。任何人都有答案讓我知道。非常感謝你!

代碼:(上傳):

function uploadFn(fileName,fileType,fileData,c){ 
     var parseUrl='https://api.parse.com/1/files/'+fileName; 
$.ajax({ 
     type:'post', 
     beforeSend:function(req){ 
       req.setRequestHeader('X-Parse-Application-Id',myParseAppId); 
       req.setRequestHeader('X-Parse-REST-API-Key',myParseRestApiId); 
       req.setRequestHeader('Content-Type',fileType); // fileType always == 'image/jpg;' 
      }, 
     url:parseUrl, 
     data:fileData, 
     processData:false, 
     contentType:false, 
     success:function(rslt){ 
      if(rslt){ 
      alert('Upload success\n Filename:'+rslt.name+'\n Url:'+rslt.url); 
        imgObj.save({curUser:curUser,fileName:rslt.name,fileUrl:rslt.url,fileId:c}, 
           {success:function(succ){ 
            alert('File info saved!'); 
            },error:function(err){ 
             alert('Error:'+err.code); 
             } 
           }) // save 


       } 
      }, 
     error:function(err){ 
       //var errObj=jQuery.parseJSON(err); 
       alert('Error:'+err.responseText); 
      } 
    }); 
    } 

上傳是沒有問題的。它工作正常!僅用於從Parse.com檢索

(toRetrieve)[I嘗試作爲:]

function fetchImg(url){ 
    $.ajax({ 
    url:url, 
    async:false, 
    type:'POST', 
    beforeSend:function(req){ 
     req.setRequestHeader('X-Parse-Application-Id',myParseAppId); 
     req.setRequestHeader('X-Parse-REST-API-Key',myParseRestApiId); 
     req.setRequestHeader('Content-Type','image/jpg'); 
    }, 
    complete:function(rslt){ 
     $('#imgId').attr('src','data:image/jpg;base64,'+rslt.responseText); 
    }, 
    success:function(){//Success 
    }, 
    error:function(err){ 
     alert('Error: '+err.responseText+'\nStatus: '+err.statusText); 
    } 
    }) 
    } 

[輸出:]

「錯誤-MSG>指定的方法不允許對這個資源'狀態:方法不允許!

注:¤(我保存的文件名,fileUrl的解析DataBrowser,並用它進行嘗試檢索上傳的文件。)

¤(應用程序是基於 '的PhoneGap')

¤新手解析/ Javascript。

非常感謝! *

回答

0

入住這裏:Load contents of image from camera to a file

基本上是:with the info in this post。 。非常感謝Raymond Camden!

function gotPic(data) { 

window.resolveLocalFileSystemURI(data, function(entry) { 

var reader = new FileReader(); 

reader.onloadend = function(evt) { 
    var byteArray = new Uint8Array(evt.target.result); 
    var output = new Array(byteArray.length); 
    var i = 0; 
    var n = output.length; 
    while(i < n) { 
     output[i] = byteArray[i]; 
     i++; 
    }     
    var parseFile = new Parse.File("mypic.jpg", output); 

    parseFile.save().then(function(ob) { 
      navigator.notification.alert("Got it!", null); 
      console.log(JSON.stringify(ob)); 
     }, function(error) { 
      console.log("Error"); 
      console.log(error); 
     }); 

} 

reader.onerror = function(evt) { 
     console.log('read error'); 
     console.log(JSON.stringify(evt)); 
    } 

entry.file(function(s) { 
    reader.readAsArrayBuffer(s); 
}, function(e) { 
    console.log('ee'); 
}); 

}); 
} 
0

我認爲檢索圖像方法應該是GET而不是POST您的ajax請求。