のIonic 2
アプリで作業しています。携帯電話からサーバーにファイルをアップロードしようとしています。このユーザーのコードはFileTransfer
プラグインです。 FileTransfer
docsActionController :: BadRequest(無効なリクエストパラメータ:無効な%-encoding)
変数をFileTransferオブジェクトはHTTP マルチパートPOSTまたはPUT要求を使用してファイルをアップロードすると、ファイルをダウンロードする方法を提供します。
これは、画像をアップロードするために、私のイオンのコードで、
fileUpload(filePath: string,apiEndpoint: string){
this.fileTransfer = new Transfer();
let fileName = filePath.substr(filePath.lastIndexOf('/') + 1);
let options = Object.assign(this.httpHeader(),{chunkedMode: false, fileName: fileName});
return this.fileTransfer.upload(filePath, apiEndpoint, options)
.then((data) => {
return data;
}).catch(this.handleError);
}
ファイルパスを取得して、それを自分のレールバックエンドにアップロードします。私が持っているレールでは、
def update_picture
@user = current_user.update_picture(params[:file])
if @user.save
render_create_success
else
render_create_errorn
end
end
開発と運用環境では、すべて私のローカルマシンで正常に動作します。しかし、一度heroku
にプッシュするとエラーになります。私が正しいだ場合
Started POST "/v1/update_picture" for
ActionController::BadRequest (Invalid request parameters: invalid %-encoding ("file"; filename="tmp_IMG-20170321-WA0000972448512.jpg"
Content-Type: image/jpeg
����JFIF��C
vendor/bundle/ruby/2.3.0/gems/rack-2.0.1/lib/rack/query_parser.rb:72:in `rescue in parse_nested_query'
は、Content-Type
はmultipart/form-data
でなければならず、データがURLエンコードされたときに、このエラーが発生しなければなりません。私のプロジェクトはこの問題に固執しています。私は知りたいです
- URLがエンコードされていないと、このエラーの原因は何ですか?
これをどのようにデバッグできますか?ローカルマシンでも英雄でも問題はありません。
編集
file upload
でchunkMode
オプションがオンになったとき、私は開発中の同様のエラーが発生しました。私はそれを偽に設定し、エラーはなくなった。詳細を知りたい場合は、追加します。どんな助けもありがとう。