2013-04-08 16 views
0

任務:PhoneGap應用程序將照片上傳到filepicker。


上傳到Filepicker
<!DOCTYPE html> 
<html> 
    <head> 
     <title>Filepicker PhoneGap iOS6</title> 
    </head> 

    <script type="text/javascript" src="cordova-2.2.0.js"></script> 
    <script type="text/javascript" src="jquery.min.js"></script> 
    <script type="text/javascript" src="ChildBrowser.js"></script> 
    <script type="text/javascript" src="filepicker.js"></script> 
    <script type="text/javascript"> 

    function useFilepicker() { 
     /* snippet from: http://stackoverflow.com/questions/13369249/filepicker-io-with-phone-gap-on-ios/14525181#14525181 */  
     cb = window.plugins.childBrowser; 
     if(cb!=null){ 
      cb.onLocationChange = function(loc){ 
       if (loc != "about:blank"){ 
        console.log(loc); 
        if(loc.indexOf("fpurl") > -1) { 
         cb.close(); 
        } 
        var n = loc.split("fpurl="); 
        fpurl = n[1]; 
        alert(fpurl); 
       } 
      }; 
      cb.showWebPage("https://www.filepicker.io/dialog/open/?m=image/*&key=______YOUR_KEY_HERE______&referrer=&modal=false&redirect_url=https://www.filepicker.io/dialog/phonegap_done/"); 
     } 
    } 

    $(function(){ 
    $("input#file").on("change", function() { 
     ("textarea#base64").val($(this).val()); 

     /* _____WHAT TO PUT HERE_____ */ 

    }); 
    }); 

    </script> 

    <body> 
    <h3>function calling Filepicker API</h3> 
    <a href="#" onClick="useFilepicker(); return false">Use Filepicker</a> 
    <!-- this works, but user experience suffers - I don't want to open extra window, I would like to have take photo/choose existing --> 


    <h3>input type=&quot;filepicker&quot;</h3> 
    <input type="filepicker"/> 
    <!-- Doesn't work, created issue here: https://github.com/Filepicker/filepicker-phonegap/issues/1 --> 

    <h3>input type=&quot;file&quot;</h3> 
    <form action="_____WHAT TO PUT HERE_____"> 
     <input id="file" type="file"/> 
    </form> 
    <textarea id="base64">Here c:/fakepath/image.jpg path with be</textarea> 

    </body> 
</html> 

注:此代碼使用ChildBrowser插件,你可能要遵循以下說明:https://github.com/alunny/ChildBrowser/issues/28#issuecomment-15941458如何讓Filepicker從本地輸入類型=「文件」上載文件?

加點:如何使用庫如 - https://gokercebeci.com/dev/canvasresize(用於客戶端圖像調整大小的插件)減少文件大小,然後使用錯誤的3G連接傳輸數據?

非常感謝您提供任何建議和支持。

回答

1

可以使用filepicker.store功能存儲本地輸入類型,例如:

var input = document.getElementById("my-file-input"); 
filepicker.store(input, {location:'S3'}, function(fpfile){ 
    console.log(JSON.stringify(fpfile)); 
}); 
0

下面是一個最小的片段,作品(上傳大量照片需要時間,也沒有進度條,所以要耐心等待)

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Filepicker PhoneGap iOS6</title> 
    </head> 

    <script type="text/javascript" src="cordova-2.2.0.js"></script> 
    <script type="text/javascript" src="jquery.min.js"></script> 
    <script type="text/javascript" src="filepicker.js"></script> 
    <script type="text/javascript"> 

    filepicker.setKey('l5uQ3k7FQ5GoYCHyTdZV'); // No worries: used filepicker's 

    $(function(){ 

    $("input#file").on("change", function() { 

     filepicker.store(this, {location:'S3'}, function(fpfile){ 

      $("<a>", { 
       href: fpfile.url, 
       text: "See me!" 
      }).appendTo("body"); 

     }); 
    }); 
    }); 
    </script> 

    <body> 
     <input id="file" type="file"/> 
    </body> 
</html> 
相關問題