質問: document.getElementById("showImage"); getFile.fetchImgSource(image_canvas); }, function(error) { // The file either could not be read, or could not be saved to NCMB. alert(JSON.stringify(error)); }); } ```
回答: エラーの意味 > > Error in Success callbackId: Camera463 : > > > この部分はMonacaというか内部のCordovaが表示している部分で、どこでエラーが起きたかを示しています。が、これはとりあえず置いておいて次に行きます。 > > TypeError: undefined is not a constructor (evaluating 'new NCMB.File(fileName, byteCharacters, "image/png")') > > > これがJavascriptのエラーです。 `xxx is not a constructor` というのは、コンストラクタではないxxxという値がコンストラクタとして呼び出された、ということを表します。この場合、 `NCMB.File` はコンストラクタのはずですが、実際には `undefined` だったということになります。 undefinedが意図せずして現れるのは、存在しない変数・プロパティを参照したときが多いです。 原因 ニフティクラウド mobile backend の Javascript SDK は去年の9月にVersion2が公開されました。 SDKガイド (JavaScript) : Version2に伴う変更点 | ニフティクラウド mobile backend `NCMB.File` コンストラクタは Version1 系のAPIで、現在の最新である Version2 系には存在しないものです。そのため、Version2のSDKで実行するとそのようなエラーになるかと思います。 Version1のサポートは 2016/3/16 で終了するようなのでVersion2に乗り換えたいところですが、Version2のマニュアルでは「ブラウザやMonacaでのファイルアップロードは今後対応予定です。」とあり、現時点でMonacaからファイルストアを利用したい場合はVersion1を利用する必要があるようです。 Version1のSDKは現在SDKダウンロードページの一番下からダウンロードが可能です。こちらからダウンロードしなおしてお試しください。 イントロダクション (JavaScript) : SDKダウンロード | ニフティクラウド mobile backend