Вы используете this.props.id
вместо props.id
в функциональном компоненте
const HandleComments = props => {
console.log('props', props);
return <div>{props.id}</div>;
};
Также вам нужно визуализировать компонент HandleComments вместо простого возврата функционального экземпляра в событие onClick, как показано ниже, или какой-то другой образом от someOtherClass
class ABC extends someOtherClass {
static create(value) {
let node = super.create();
node.setAttribute('style', 'font-size:100%; color: white');
node.setAttribute('id', Date.now());
node.onclick = function(e) {
ReactDOM.render(<HandleComments id={e.target.id} />, document.getElementById('root'));
};
return node;
}
}
При использовании move_uploaded_file
Вы добираетесь для выбора имени файла, таким образом, можно выбрать что-либо, что Вы хотите.
Когда Вы загружаете файл, его помещенный во временный каталог с временным именем, move_uploaded_file()
позволяет Вам перемещать тот файл, и в этом необходимо определить имя файла также.
Почему не только сохраняют его с другим именем:
Просто измените имя переменной $uploadfile:
$uploadfile = $uploaddir . "somefilename" . end(explode(".", $file['name']));
Не причинило бы боль однако при рефакторинге кода немного.
Когда Вы делаете
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
Просто $uploadfile набора к целому пути желаемого имени файла; т.е. "uploads/mynewfilename.jpg"
Я предложил бы, чтобы Вы проверили класс Загрузки Файла Verot. Это излечивает много боли загрузки файла через php и делает Ваш код намного более читаемым / удобный в сопровождении.
Вот ссылка на класс и документация.
Относительно точного ответа на Ваш вопрос: Для давания нового имени загруженному файлу поместите его как второй аргумент move_uploaded_file () функция.
Так как Вы хотите сохранить расширение, сохраните его сначала в переменной:
$ext = explode('.',$_FILES['uploaded']['name']);
$extension = $ext[1];
Вы могли использовать корневое имя файла для генерации нового имени (здесь с меткой времени, добавленной к нему):
$newname = $ext[0].'_'.time();
Скажите загрузку файла, и имя входной переменной формы является "myfile.png", это станет 'myfile_2343544.png';
Теперь, объедините локальный путь к целевому каталогу, var $newname и расширению файла для установки второго аргумента функции:
$full_local_path = 'path/to/your/filefolder/'.$newname.'.'.$extension ;
move_uploaded_file($_FILES['uploaded']['tmp_name'], $full_local_path);