質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

0回答

1231閲覧

ファイル転送プラグインの移行について

lucky-ponta

総合スコア74

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2019/08/17 07:37

編集2022/01/12 10:55

MonacaでiPadアプリを作成しています。

Cordovaバージョンをアップしてから(6.5から7.1.0)
これまで動いていたファイル転送プラグイン(FileTransfer)が正常に動作しなくなり、困っています。

また、今後、7.1.0から9.0へのバージョンアップも検討しているのですが、
使用しているファイル転送プラグインが、Cordova 9.0以降では非推奨となる、とのことで、
APIの解説に記載のあった、XMLHttpRequestを用いる方法で試しているのですが、
うまくいきません。

var filename = "uploadfile.txt"; //保存ファイル名 var sendData = "ファイル保存する内容"; window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { console.log('file system open: ' + fileSystem.name); fileSystem.root.getFile(filename, { create: true, exclusive: false }, function (fileEntry) { fileEntry.file(function (file) { var reader = new FileReader(); reader.onloadend = function() { // Create a blob based on the FileReader "result", which we asked to be retrieved as an ArrayBuffer var blob = new Blob([new Uint8Array(sendData)], { type: "text/plain" }); var oReq = new XMLHttpRequest(); var dataUrl = "http://アップロード先アドレス/保存先/uploader.php"; oReq.open("POST", dataUrl, true); oReq.onload = function (oEvent) { // all done! }; // Pass the blob in to XHR's send method oReq.send(blob); }; // Read the file as an ArrayBuffer reader.readAsArrayBuffer(file); }, function (err) { console.error('error getting fileentry file!' + err); }); }, function (err) { console.error('error getting file! ' + err); }); }, function (err) { console.error('error getting persistent fs! ' + err); });

ファイル保存する内容は、各画面で入力した内容を、
文字列で結合し、改行コードを付加したテキストファイルです(UTF8のファイル)

尚、アップロード先のuploader.phpは、以下の通りです。
(確か、どこかのサイトから、流用したものと思います)

<?php $uploaddir = '/アップロード先/'; $uploadfile = $uploaddir . basename($_FILES['file']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { echo 'File is valid, and was successfully uploaded.\n'; } else { echo 'Possible file upload attack!\n'; } echo 'Here is some more debugging info:'; print_r($_FILES); echo '</pre>'; ?>

ログには、エラーも何も出力されませんし、サーバにも、何も保存されていません。
Javascript自体、独学なため、書き方がダメなのかどうかの判断もできず、質問した次第です。
他の書き方があるなど、アドバイスをいただけないでしょうか?

なお、Cordovaバージョンは、7.1.0で検証しています。
ファイルのダウンロード処理もあるのですが、そちらはなんとかうまくダウンロードできています。

追記

実現したいことは、
画面上で作成したテキストデータを、サーバに保存する、ということなので、
このやり方で、実現が難しそうであれば、あまり現実的ではないですが、
HTTPのrequestにテキストデータを乗せて、サーバ側で読み取って、ファイル保存をすることも検討しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問