将图片文件路径上传到数据库,无需创建多个记录并赋予文件随机名称

将图片文件路径上传到数据库,无需创建多个记录并赋予文件随机名称

我希望能够将图片上传到文件夹并将其文件路径上传到 MySQL 数据库,而无需创建多条记录。

例如,而不是:

id    PicturePath                  size
1     file1.jpg                    90832
2     file2.jpg                    84593

我想要做:

id    PicturePath1                 PicturePath2                 PicturePath3
1     file1.jpg                    file3.jpg                    file5.jpg  

并且上传时,它应该更改原始文件的名称,例如,如果用户上传 DSC0009.jpg,它应该上传到文件上传文件夹和 MySQL 数据库中,如下所示:someRandomFileName8087935.jpg

答案1

如果您想更改文件名,只需使用 $name = RAND(); 我不认为您可以将文件名仅插入一行,也许您可​​以使用更新语句,但这有点超出我的 php 技能范围。

答案2

(如果这不是你所问的,请再次评论你的问题)

好的,我明白了。

  1. 要创建一个随机名称,您可以time()在文件名中使用,因为随机函数有可能两个文件名相同(如果这可能是您的系统的问题)。例如

    time().$_FILES["uploadPic"]["name"] // if file name is john.jpg
    it will save file name something like 1302827272john.jpg
    
  2. 虽然不清楚您问的是什么,但这可能会有所帮助。

如果一条记录的 picturePaths 使用多列,效果会更好,但如果只有一列 picturePath,则可以通过将新文件名附加到旧文件名来更新前一个字段。例如:

// get old path using 
Select picturePath as path 
From your_table_name 
where your_table.id = '1';

$path = path.','.$newFileName; // this is suedo code

// update your picture path using update query
update table_name SET picturePath = $path where id = '1'

请记住,现在您必须拆分图片路径,当您使用它时,您可以使用preg_split

preg_split('/,/', $path, -1, PREG_SPLIT_NO_EMPTY);

相关内容