2011-07-27 71 views
0

现在我有一个网站,它允许用户上传一个文件,该文件存储在我的服务器上的本地目录中。文件上传完成后,我会执行一些相当昂贵的操作来为用户生成一个HTML文件(使用两个Java程序)。由于这些操作如此昂贵,我现在希望能够使用SHA256来保存已上载的每个文件的数据库。这样,如果有人上传文件并且该文件已经被处理,我不必再次处理它,我只能显示现有的HTML。sha256散列PHP和存储在MySQL上

为了确定与文件关联的HTML是最新的,我还想拥有两个java程序的版本,我在与哈希值关联的文件上运行该程序。

所以逻辑如下:
1.用户提交一个文件。
2.如果文件还没有在服务器上,照常营业。
3.如果是,请检查用于生成html的两个java程序的哪个版本。
4.如果当前版本较新,则重新生成html。

我对SHA或MySQL了解不多,所以任何帮助都不胜感激。真的问题归结为:我怎样才能在MySQL数据库上存储一堆哈希值和它的两个版本标识符,并在以后检索这些信息。

如果问题不清楚,让我知道,这样我可以清除混淆。

谢谢!

+0

您对关系数据库和SQL有基本的了解吗?如果不是,你应该首先熟悉MySQL。 –

+0

不,我不知道。我希望有一些简单的PHP函数可以调用来存储和检索信息。我不会把我的数据库课程,直到下学期,但我现在想弄清楚哈哈。 – Corey

+1

没有简单的功能来存储和检索数据库中的数据。你真的需要知道关于数据库表和SQL来使用MySQL的基础知识! –

回答

0

hash_file()可以创建文件的sha256哈希值。

为DB,我会想象一个表如下

表名:File_Hash与列 'ID'{PK,AI,INT}, '哈希'{文本}, '引擎'{INT} ,'filepath'{varchar}

使用此布局,您可以在'filepath'中存储对文件的引用,在'hash'中存储sha256文件哈希,并标识'engine'中使用的java程序(第一个为1 Java程序,其他2个)。