2

这开始是一个简单的问题,现在已经成为一个个人挑战而不是一个问题。开始!

背景

我有一个移动应用程序,它通过标准表收集用户指定的数据,还收集一张存储为二进制文件的照片。该应用程序允许您指定服务器端脚本的位置以处理它收集的数据 - 二进制对象的脚本与字母数字数据的脚本不同(应用程序要求它们分开,而不是我)。该应用程序上的文档/支持很少(部分原因这已成为个人挑战而不是问题)。我正在使用 PHP 处理数据并将其放入 MySQL 数据库。

简单部分:字母数字数据

应用程序中预定义了一些字段,例如纬度/经度。我使用 serialize($_POST) 将结果插入临时 MySQL 数据库以获取特定于数据库的名称,以便我的 PHP 代码可以将它们永久放入 MySQL 数据库。例如,纬度被提交为 ecLatitude - 谁会猜到。一旦我知道它是 ecLatitude,我就可以处理它并将它放在我想要的方式/位置。当然,我定义的字段没有问题。

困难部分:二进制对象

所以现在我的问题是二进制对象(照片)。与某些数据库字段一样,我无法控制文件的名称。似乎标准做法是调用文件“文件”,或者如果我使用的是 HTML 界面,我会随意调用它,因为我可以使用 $_FILES 并查找我指定的名称。所以似乎我需要以某种方式序列化二进制对象以确定实际文件的 id,而不是文件名。我的意思是,如果文件名为picture.jpg 并作为照片提交,我需要知道“照片”而不是“图片.jpg”。

我在哪里

我看到的每个示例都是从知道二进制对象 id 的名称(在本例中为“照片”)开始的,因为您会认为这是一个相当明显的变量。我尝试在序列化对象之前对其进行编码,但这似乎仍然返回 MySQL 数据库中的非唯一名称(picture.jpg),而不是 id。

***编辑 - 我为特定于 blob 的脚本尝试了以下代码。

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

这在 PHP 中是否可行,还是我需要进行网络监控?

抱歉,如果我没有使用正确的术语 - 我试图用我简单的示例术语来表达这一点。

4

0 回答 0