2

これは単純な質問として始まり、今では質問というよりも個人的な挑戦になっています。どうぞ!

バックグラウンド

標準のテーブルを介してユーザー指定のデータを収集し、バイナリファイルとして保存されている単一の写真も収集するモバイルアプリケーションがあります。このアプリでは、収集するデータを処理するサーバー側スクリプトの場所を指定できます。バイナリオブジェクトのスクリプトは、英数字データのスクリプトとは異なります(アプリでは、私ではなく、個別のスクリプトが必要です)。アプリのドキュメント/サポートはまばらです(これが質問よりも個人的な課題になっている理由の一部です)。PHPを使用してデータを処理し、MySQLデータベースに配置しています。

簡単な部分:英数字データ

lat / longなど、アプリケーションで事前定義されているフィールドがいくつかあります。私はserialize($ _ POST)を使用して、結果を一時的なMySQLデータベースに挿入し、データベース固有の名前を取得して、PHPコードがそれらをMySQLデータベースに永続的に配置できるようにしました。たとえば、緯度はecLatitudeとして送信されました。それがecLatitudeであることがわかったら、それを処理して、好きな方法/場所に配置できました。もちろん、私が定義したフィールドは問題ありませんでした。

難しい部分:バイナリオブジェクト

だから今私の問題はバイナリオブジェクト(写真)です。一部のデータベースフィールドと同様に、ファイルの名前を制御することはできません。標準的な方法はファイル'file'を呼び出すことであるようです。または、HTMLインターフェイスを使用している場合は、$ _ FILESを使用して指定した名前を探すことができるため、好きなように呼び出します。したがって、ファイル名ではなく、実際のファイルのIDを判別するために、バイナリオブジェクトを何らかの方法でシリアル化する必要があるようです。つまり、ファイルがpicture.jpgと呼ばれ、写真として送信された場合、「picture.jpg」ではなく「写真」を知る必要があります。

私がいるところ

私が見たすべての例は、バイナリオブジェクトID(この場合は「写真」)の名前を知ることから始まります。これはかなり明白な変数であると予想されるためです。シリアル化する前にオブジェクトをエンコードしようとしましたが、それでもMySQLデータベースでIDではなく一意でない名前(picture.jpg)が返されるようでした。

***編集-blob固有のスクリプトに対して次のコードを試しました。

$outputfields= serialize(base64_encode($_POST));
$query="INSERT INTO varnames (data) values ('".$outputfields."')";

これはPHP内で可能ですか、それともネットワーク監視を行う必要がありますか?

正しい用語を使用していない場合は申し訳ありません-単純な例の用語でそれを理解しようとしました。

4

0 に答える 0