2010-11-29 8 views
9

PhoneGapのアプリケーションは、HTML5 + CSS + JavaScriptの大部分であるとは限りません。ネイティブに、iPhoneはファイルをアップロードするコントロールを提供していません。PhoneGap + iPhoneでファイルをアップロードする

PhoneGapには、ユーザーがファイルをアップロードできるメカニズムがありますか?

私は知っているチタニウムはこれを行うことができますが、コンパイルされたJavascript APIと独自のAPIを持つ別の動物です。あなたのアドバイス/入力をありがとう。

+0

iPhoneは現在ありません画像をアップロードするには、ネイティブコントロールを提供します。 – user2398029

+0

真剣に? ''はiOS 7の時点で動作しますか? – jocull

+0

うん。 iOS 6でも、カメラロールから写真を選択するか、新しい写真を撮るかをユーザーに尋ねます。 – user2398029

答えて

9

PhoneGap APIを使用してファイルを読み込み、サーバーアプリケーションがサポートしている場合はAJAXポストを使用してファイルを読み込むことができると思います。

もう1つの選択肢は、ニーズに合わせてPhoneGapにカスタムモジュール/プラグインを書き込むことです。ここで

はあなたがローカルドライブ上のファイルへのXMLHttpRequestを行うことができますいくつかのExample Plugins

+0

それは、それが得られるほど近くにあるように見えます。この方法でファイルを読み書きすると、メモリに負荷がかかりますか?それがそれのために行く前に全部をバッファリングしようとするかどうかは分かりません。 – jocull

+0

私は考えていない、前に本当に試していないが、あなたはいつもプラグインを書くことができる、彼らはそれほど難しくありません。私はコードをダウンロードするために書いた。すべての情報源はここに投稿されていますhttp://blog.clearlyinnovative.com/post/2056122828/phonegap-plugin-for-downloading-url-all-the-code –

+0

興味深いことに、私はまだ動作中のプラグインを見ていませんでした。リンクありがとう。 – jocull

-1

です。
iPhoneで動作するかどうかは100%確信していませんが、Webkitはそれをサポートする必要があります。

function getImageBinaries(url) { //synchronous binary downloader for firefox2 

var req = new XMLHttpRequest(); 
req.open("GET", url, false); 

req.overrideMimeType('text/plain; charset=x-user-defined'); 

req.send(""); 
if (req.status != 200) { 
    return ""; 
} 
var t = req.responseText || "" ; 
var ff = []; 
var mx = t.length; 
var scc= String.fromCharCode; 
for (var z = 0; z < mx; z++) { 
    ff[z] = scc(t.charCodeAt(z) & 255); 
} 
var b = ff.join(""); 
return b; 
} 

大成功、 エリック

+0

アップロードするのではなく、イメージをダウンロードするコードはありませんか? – jocull

+0

はい、しかしあなたはバイナリを持っています。 これをbase64文字列にエンコードし、それを使ってファイルをアップロードすることができます。投稿したい場合は、base64をフィールドに入れることができます。それを解読するためにあなたのサーバー側で少し変更を加えることを忘れないでください。すべてのデバイス(iPhoneを含む)ではサポートされていないので、を作成する方が良いでしょう。 このデータを投稿するか、またはhttprequestを使用してデータを送信することができます。 – Erik

関連する問題