2014-09-29 4 views
4

У меня есть PHP-код, который загружает несколько файлов одновременно. В настоящее время я использую шаблон name_timestamp для имени файла - чтобы сохранить уникальность. Теперь требование состоит в том, что предположим, что я дважды загрузил изображение Desert (контент остается тем же), тогда будет 2 записи с этой меткой времени. Например:Уникальное имя после загрузки нескольких изображений

Desert_201409281000.jpg 
Desert_201409282000.jpg 

Можно показать некоторые уникальное имя, как Фото1 только для этого?

Я пробовал с JQuery для этого, но я хочу PHP-решение.

+0

При сохранении файлов в коде PHP, возможно проверить, файл сохраняется перед сохранением. Вы можете сделать это сразу после добавления отметки времени. – RDL

+0

Desert_201409281000.jpg Desert_201409282000.jpg почему такие имена? будут ли они всегда такими? – vks

+0

Я не понимаю вопроса. Эта часть 'Возможно ли показать какое-то уникальное имя, например PHOTO1, для этого?' Разработайте немного больше. Если вы хотите уникальность, попробуйте 'uniqid()' в сочетании с тем, что вы сейчас используете **, если ** это то, что вы просите. ** Редактирование: ** Я думаю, что, по словам BojanT, вероятно, вам нужно использовать/делать. –

ответ

0

Как вы загружаете изображения?

  • Если через внешний URL, то вы можете просто проверить дублированные ссылки

  • Если с компьютера, то вы можете использовать некоторые PHP библиотеки для проверки дубликатов изображений, а затем применить временные метки и способ чтобы переименовать файлы в один файл Photo1.jpg ...

  • Я считаю, что вам нужна метка времени, если нет, то, очевидно, первое появление изображения в списке с меткой времени можно сохранить как имя для всех дубликаты!

Кроме того, после поиска для PHP решения дублировать файлы изображений, я нашел эту страницу: [::: link :::]

Эта страница показывает, что PHP имеет встроенную функцию, называемую md5, которая проверяет значения md5 любого файла. Если вы храните имена файлов md5 в SQL, то в PHP вы можете искать любое соответствие значений md5 загруженного файла в вашей таблице SQL и переименовывать файлы в соответствии с вашим требованием.

Вот код для проверки на значение md5 из MYSQL таблицы:

$sign = md5(file_get_contents($filename)); //This will create an unique md5 signature for every picture 

//You could now store that hash in your database and check for duplicates at every upload 
$results = mysql_query("SELECT file FROM images WHERE signature=" . $sign); 
if ($row = mysql_fetch_array($results)) { 
    //Duplicate found, $row['file'] contains name 
} 

Как было предложено, вы также можете использовать: $sign = md5_file($filename); или sha1

+0

Возможно ли иметь дело только с массивами ... например, картирование ключей массива с его значениями, если что-либо соответствует найденному PHOTO 1. –

+0

Я не уверен, что вы подразумеваете под отображением массива со значениями ... Я думаю, вы могли бы сделать это с помощью цикла for. – mk117

Смежные вопросы