Carregar caminhos de arquivos de imagens para o banco de dados sem criar vários registros e dar nomes aleatórios aos arquivos

1

Eu quero poder fazer upload de fotos para uma pasta e seus caminhos de arquivo para um banco de dados MySQL sem criar vários registros.

Por exemplo, em vez de:

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

Eu quero fazer:

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

Além disso, ao fazer o upload, ele deve alterar o nome do arquivo original, por exemplo, Se o usuário fizer o upload de DSC0009.jpg, ele deverá fazer o upload para a pasta de upload de arquivos e para o banco de dados MySQL, como: someRandomFileName8087935.jpg

    
por user1830990 17.11.2012 / 01:02

2 respostas

0

se você quiser alterar o nome do arquivo, use $ name = RAND (); Eu não acho que você pode inserir nomes de arquivos em uma única linha, talvez você possa usar a instrução de atualização, mas isso é um pouco além da minha habilidade de php para orientar.

    
por 17.11.2012 / 01:05
0

(se isso não é o que você pediu, comente sua pergunta novamente)

Ok, o que eu entendo é.

  1. Para criar um nome aleatório, você pode usar time() no nome do arquivo porque a função aleatória tem a probabilidade de que dois nomes de arquivos possam ser iguais (se isso pode ser um problema com o sistema). por exemplo,

    time().$_FILES["uploadPic"]["name"] // if file name is john.jpg
    it will save file name something like 1302827272john.jpg
    
  2. Não está claro o que você pediu, mas isso pode ajudar.

Seria melhor se você usasse várias colunas para picturePaths em um registro mas se você tiver apenas uma coluna de picturePath, poderá atualizar o campo anterior anexando o novo nome de arquivo com o nome de arquivo antigo. Por exemplo:

// 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'

E lembre-se agora você tem que dividir caminhos de imagem quando você vai usá-lo, você pode usar preg_split

preg_split('/,/', $path, -1, PREG_SPLIT_NO_EMPTY);
    
por 17.11.2012 / 01:47

Tags